1
davehandong 1 天前
C++里面驼峰或者 pascal 命名一般变量。下划线大写命名常量、宏。
|
![]() |
2
mogg 1 天前
|
![]() |
3
NightFlame 1 天前
哪个项目?
我都是: 私有变量 _myName 私有局部变量 myName 公开变量 MyName |
4
Thymolblue 1 天前
std 是下划线,Qt 是大小驼峰,Win32 API 纯大驼峰。混在一起就乱了。
|
5
pulutom40 1 天前 via iPhone ![]() 你就说能不能用吧,是影响你下个月工资了还是影响程序性能了还是编译器编译不过了?
|
![]() |
6
qW7bo2FbzbC0 1 天前
纯 c# 项目用推荐风格的话是不存在这种
像楼上说的有可能是 Win32 API 的历史问题 也有可能是其他语言刚转过来 |
![]() |
7
son012 1 天前
用 qt ,go 你说我为啥混用,go 喜欢驼峰,qt 喜欢下划线,两个要一起写,写着写着你都忘记该用那个了
|
8
kevinxzhao 1 天前
没有规范,或者没那么强。
|
9
gullitintanni 1 天前
不同项目有不同的代码风格约定,只要整个项目保持一致就没什么问题
我现在正在维护的公司屎山代码,变量命名里还带着类型信息,比如 iTotalCount ,charpUserName ,看着非常难受,但也能理解当初他们为什么要这么做 |
10
MrKrabs 1 天前
看心情
|
![]() |
11
lujiaxing 1 天前 ![]() 多正常. 有好多 CShaper 都是 C/C++ 转过来的, 代码风格里带有强烈的 C/C++ 痕迹. 这都不是最离谱的
最离谱的是我曾经在某公司的代码里看到 ``namespace com.xxx.xxx.SomeNameSpace.Xxxx`` 这种写法.. 见到真是一口老血都喷出来了. |
12
hefish 23 小时 52 分钟前
不为啥,leader 要求这么用。 现有代码都这么用。
|
![]() |
13
geelaw 23 小时 7 分钟前 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 21 小时 12 分钟前
@gullitintanni > 变量命名里还带着类型信息,比如 iTotalCount ,charpUserName
这个是标准的匈牙利命名法,主要是在前 IDE 时代用的。当时没有很好的代码智能提示,所以相比每次用一个变量都需要找到它的 declaration ,能从变量名里直接读出类型显然更方便。现在有时写代码我也用 g_ 标识全局变量、s_ 标识静态变量、k_ 标识常量。 |
![]() |
16
geelaw 21 小时 2 分钟前 via iPhone
@w568w #15 iTotalCount 是错误的匈牙利命名法,匈牙利命名法里的“类型”信息不是存储类型而是含义类型,比如 cbStruct 和 cchOutput 才是正确的,uStruct 和 uOutput 则是错误的。
cb = Count of Bytes cch = Count of CHars u = Unsigned |
17
w568w 20 小时 49 分钟前
@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 20 小时 6 分钟前 via iPhone
C#命名规范我见的最多的:函数、类名用大坨峰;局部变量名用小坨峰;常量、静态变量、全局变量用全大写➕下划线断词代替空格,数据库表名用纯小写用下划线断词代替空格;依赖注入用小坨峰前置一个下划线
|
![]() |
19
bbbblue 19 小时 16 分钟前
我看 UE 似乎就是这样 不过他还把类型都带上 比如 BP_Player 😂(玩家蓝图)
|
21
anewbing 3 小时 43 分钟前
哈哈 不要纠结这些 这些不是问题的关键
|