经常发现命名变量比较困难。
大家有什么好的方法。
m_arrOutCardsSpriteIndex 这样的变量名是不是太长了。
我得意思是出的牌对应图片精灵的索引数组。

解决方案 »

  1.   

    一点儿不长。如果你使用了visual assitant的话,有自动输入功能就不怕了。所以宁可取个长点儿的名字,关键要让别人能看明白,不仅是自己。
      

  2.   

    学英语!  一般变量是把英文字符中的元音去掉来缩短变量名称的.如:respond 为rsp
      

  3.   

    m_arrOutCardsSprite 不长,如果是我我会写 m_arrayOutCardsSprite
      

  4.   

    在一个语意环境里面,如果变量名太长,证明你的环境要么太大,要么做了太多事情。否则对于一个简单任务,几个变量足够了,相信名字也和含义一样简单:length、count、time……造成变量名长的原因大多是你的代码逻辑和函数大小没有控制好。
      

  5.   

    匈牙利命名法的初衷是给C那样的弱类型语言用的,在一个强类型语言中,没有必要用匈牙利命名法。
    我不太明白“出的牌对应图片精灵的索引数组”是什么意思,是不是以牌面的数字为下标获得的值是对应的图片?如果是的话,那这就是一个映射表或者查找表,是我的话,我会叫它:lookupTableFromCardToSpirit。这个变量名并不长。
    当你用一个变量的时候,你需要了解的首先是它的作用,而不是它的类型。借助现代IDE的成员提示和自动补全功能,你可以很轻易的在任何使用一个变量的场合获得它的类型,而不需要借助于变量名。
    另外就是一些各人常见的习惯了,比如Index结尾常常用来表示下标或循环变量,Count或Size结尾表示集合里元素的数量,用Begin开头的方法其相对称的方法用End开头等等。如果你在别人代码的基础上开发,尽量保证一个系统用的是相同的命名法。如果你不确定什么样的命名法是好的,那么最好模仿你所使用的语言所使用的标准库的命名法。比如在Java里Sun提倡方法名和变量名都用小写字母开头,而C#里MS提倡方法名用大写开头变量名用小写开头,这个没有什么好坏之分,只不过是让你的程序看上去和其它代码相处更和谐而已。
      

  6.   

    忘了以前是从哪里看到的,不妨参考一下:
    匈牙利命名法:
    MFC、句柄、控件及结构的命名规范 
    Windows类型 样本变量 MFC类 样本变量
    HWND           hWnd;          CWnd*           pWnd;
    HDLG           hDlg;          CDialog*           pDlg;
    HDC           hDC;          CDC*           pDC;
    HGDIOBJ           hGdiObj; CGdiObject*  pGdiObj;
    HPEN           hPen;          CPen*           pPen;
    HBRUSH           hBrush;  CBrush*           pBrush;
    HFONT            hFont;           CFont*           pFont;
    HBITMAP            hBitmap; CBitmap*           pBitmap;
    HPALETTE            hPaltte; CPalette*           pPalette;
    HRGN            hRgn;          CRgn*           pRgn;
    HMENU            hMenu;          CMenu*           pMenu;
    HWND            hCtl;          CState*            pState;
    HWND            hCtl;          CButton*           pButton;
    HWND            hCtl;          CEdit*           pEdit;
    HWND            hCtl;          CListBox*           pListBox;
    HWND            hCtl;          CComboBox*  pComboBox;
    HWND            hCtl;          CScrollBar* pScrollBar;
    HSZ            hszStr;          CString              pStr;
    POINT            pt;          CPoint               pt;
    SIZE             size;          CSize              size;
    RECT            rect;            CRect            rect;
      

  7.   

    关键还是英文要好---m_arrOutCardsSpriteIndex如果是我,我会写成m_iSpritesOfCards;