1 davehandong 22 天前 C++里面驼峰或者 pascal 命名一般变量。下划线大写命名常量、宏。 |
![]() | 2 mogg 22 天前 |
![]() | 3 NightFlame 22 天前 哪个项目? 我都是: 私有变量 _myName 私有局部变量 myName 公开变量 MyName |
4 Thymolblue 22 天前 std 是下划线,Qt 是大小驼峰,Win32 API 纯大驼峰。混在一起就乱了。 |
5 pulutom40 22 天前 via iPhone ![]() 你就说能不能用吧,是影响你下个月工资了还是影响程序性能了还是编译器编译不过了? |
![]() | 6 qW7bo2FbzbC0 22 天前 纯 c# 项目用推荐风格的话是不存在这种 像楼上说的有可能是 Win32 API 的历史问题 也有可能是其他语言刚转过来 |
![]() | 7 son012 22 天前 用 qt ,go 你说我为啥混用,go 喜欢驼峰,qt 喜欢下划线,两个要一起写,写着写着你都忘记该用那个了 |
8 kevinxzhao 22 天前 没有规范,或者没那么强。 |
9 gullitintanni 22 天前 不同项目有不同的代码风格约定,只要整个项目保持一致就没什么问题 我现在正在维护的公司屎山代码,变量命名里还带着类型信息,比如 iTotalCount ,charpUserName ,看着非常难受,但也能理解当初他们为什么要这么做 |
10 MrKrabs 22 天前 看心情 |
![]() | 11 lujiaxing 22 天前 ![]() 多正常. 有好多 CShaper 都是 C/C++ 转过来的, 代码风格里带有强烈的 C/C++ 痕迹. 这都不是最离谱的 最离谱的是我曾经在某公司的代码里看到 ``namespace com.xxx.xxx.SomeNameSpace.Xxxx`` 这种写法.. 见到真是一口老血都喷出来了. |
12 hefish 22 天前 不为啥,leader 要求这么用。 现有代码都这么用。 |
![]() | 13 geelaw 22 天前 via iPhone FooFoo_BarBar 这种在 C# 最常见的是自动生成的事件处理器的方法名,比如 Form_Resized 通常是 this 作为 Form 类上的 Resized 事件,又比如 btnOk_Click 是 this.btnOk 对象的 Click 事件。在 C# 第二常见的是 COM 接口重名方法自动映射的消歧义名字,比如 IFace1 有 HRESULT Method(ULONG *result) 而 IFace2 有 HRESULT Method(SHORT *result),那么同时实现 IFace1 和 IFace2 的 COM 对象就会具有 uint IFace1_Method() 和 short IFace2_Method()。这种 COM 改名方法对于用 C 语言访问 COM 也适用。 可以认为 _ 起到一个 :: (C++) 或者 . (C#) 的作用。 |
![]() | 14 liuliuliuliu PRO @geelaw 这个正解,C#里加下划线都是自动生成的代码,如果是手工写的还有下划线的,那就是 c 语言转过来的人,哈哈 |
15 w568w 22 天前 @gullitintanni > 变量命名里还带着类型信息,比如 iTotalCount ,charpUserName 这个是标准的匈牙利命名法,主要是在前 IDE 时代用的。当时没有很好的代码智能提示,所以相比每次用一个变量都需要找到它的 declaration ,能从变量名里直接读出类型显然更方便。现在有时写代码我也用 g_ 标识全局变量、s_ 标识静态变量、k_ 标识常量。 |
![]() | 16 geelaw 22 天前 via iPhone @w568w #15 iTotalCount 是错误的匈牙利命名法,匈牙利命名法里的“类型”信息不是存储类型而是含义类型,比如 cbStruct 和 cchOutput 才是正确的,uStruct 和 uOutput 则是错误的。 cb = Count of Bytes cch = Count of CHars u = Unsigned |
17 w568w 22 天前 @geelaw 你说的是「匈牙利应用命名法」,我说的是「系统匈牙利命名法」。都属于匈牙利命名。 ref: https://zh.wikipedia.org/wiki/%E5%8C%88%E7%89%99%E5%88%A9%E5%91%BD%E5%90%8D%E6%B3%95 |
![]() | 18 maymay5 22 天前 via iPhone C#命名规范我见的最多的:函数、类名用大坨峰;局部变量名用小坨峰;常量、静态变量、全局变量用全大写下划线断词代替空格,数据库表名用纯小写用下划线断词代替空格;依赖注入用小坨峰前置一个下划线 |
![]() | 19 bbbblue 22 天前 我看 UE 似乎就是这样 不过他还把类型都带上 比如 BP_Player (玩家蓝图) |
21 anewbing 21 天前 哈哈 不要纠结这些 这些不是问题的关键 |