Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我应该如何命名我的类、函数、成员变量和静态变量?_C#_Java_C++_C - Fatal编程技术网

C# 我应该如何命名我的类、函数、成员变量和静态变量?

C# 我应该如何命名我的类、函数、成员变量和静态变量?,c#,java,c++,c,C#,Java,C++,C,有些人可能觉得这个问题是主观的。但是,我觉得这是告诉程序员的最重要的事情之一 这是检查空值的好函数名 1. checkNull() 2. notNull() 3. isNull() 如果我写信呢 checkIfNull() 我不知道有多少人和我有相同的感觉,我花了更多的时间为我的功能想好名字,而不是写一个 人们如何看待好名字?跨语言(主要是C++和java)< /P>是否可以一致命名? 更新: 就目前为止的更新数量而言,大多数人更喜欢isNull()。您如何确定isNull()是一个完美的

有些人可能觉得这个问题是主观的。但是,我觉得这是告诉程序员的最重要的事情之一

这是检查空值的好函数名

1. checkNull()
2. notNull()
3. isNull()
如果我写信呢

checkIfNull() 
我不知道有多少人和我有相同的感觉,我花了更多的时间为我的功能想好名字,而不是写一个

人们如何看待好名字?跨语言(主要是C++和java)< /P>是否可以一致命名? 更新: 就目前为止的更新数量而言,大多数人更喜欢isNull()。您如何确定isNull()是一个完美的名称

checkNotNull() // throw exception if Null
这是个好名字吗?每个人都依靠自己的直觉来决定一个名字吗


问题是选择一个完美的名字 现在强烈建议使用javaBeans约定:

isNull() //if the return type is a primitive
getNull() //if the return type is an object (Like Boolean in java)
对于非布尔类型的访问成员,应使用get。
对于静态变量成员,使用驼峰大小写样式:“myVar”。
对于类名,使用首字母大写的驼峰式大小写样式:“MyClass”。

对于常量成员,使用带下划线的大写字母作为分隔符:“MY_constant”。

我更喜欢
IsNull


要学习良好的命名风格,请学习标准库(PHP除外)。您应该遵循每种语言中标准库使用的样式


对于C#,我个人会使用

   IsNull()

isNull可能是一个坏例子,因为:

Object foo = null;
if (foo.isNull()) { // Causes a NullPointerException in Java. }
否则,您将得到:

Object foo = null; 
if (UtilityClass.isNull(foo) { }
这似乎比仅仅做更难,更不清楚:

Object foo = null;
if (foo == null) { }

根据您使用的语言不同,它可能会有所不同,您为此问题添加了一些标记。与您编写代码所依据的语言/库的标准保持一致非常重要。是的,命名约定非常重要![上面甚至有维基百科的条目:]

对于.Net,我发现了有关命名约定的“备忘单”:


对于您在C#中的示例,我建议:
IsNull()

如果您的公司没有在其编码标准中指定命名约定,我建议您添加它们

我们公司的Java编码标准是基于官方标准的,我相信,官方标准指定了像
isNull()
这样的名称

从您的示例来看,
notNull()
是不好的,因为您可能会得到类似于
if(!notNull())
之类的语句。

我会使用IsNull();在.Net中有一个优先级,它对字符串类型有一个静态IsNullOrEmpty()方法。“Is”是返回bool的方法的首选前缀。我不会使用否定方法“notNull”,因为这太容易导致双重否定。相反,在肯定方法上使用否定操作,例如!IsNull()

然而,只检查空值的方法可能会使事情过于复杂;你怎么了

x==null

我认为这比

IsNull(x)

看到IsNull(x)的大多数开发人员都会想,IsNull方法中是否有一些奇特的null检查;如果没有,那么“x==null”可能更好。

IsNull()是一个不错的选择,但另外它应该返回bool


因此,您可以在if station中检查它的值,而不会得到任何NullReference异常。

与其他类型一样,我更喜欢isNull()(或isNull(),具体取决于您的语言/编码约定)

为什么??除此之外,这是一个被广泛接受的惯例,当您阅读代码时,听起来很不错:

if (isNull())
// or
if (foo.isInitialized())
等等。几乎是自然英语…:-)与其他选择相比
像iWerner一样,我会避免使用否定形式来命名标识符(变量、方法)。

另一个常见的约定是以动词开头方法/函数名。现在,Sun在Java的早期没有遵循这一惯例(例如length()和size()方法),但它甚至反对使用一些旧名称,支持动词规则。

如果函数在null时抛出异常,它应该被称为
ThrowIfNull
,以明确它将为您抛出。

如果您在代码中执行大量空检查,我认为有两种方法,即:

IsNull()

IsNotNull()
从长远来看,这将产生可读性最高的代码

我知道!IsNull()是花括号语言中的标准习惯用法,但我认为它远不如IsNotNull清楚


忽略单个“!”字符太容易了,尤其是当它隐藏在更复杂的表达式中时。

我找到了这篇文章。很想和你们分享

答案取决于方法返回的内容。
如果它返回一个bool,指示对象是否为null,我会将其命名为IsNull(Thing-Thing),因为它是最不含糊的公式-方法的作用和返回的内容是显而易见的。
如果该方法为void,但如果对象为null则抛出,我会将其称为GuardAgainstNull(),或者类似的东西。

在我看来,CheckNull()有点模棱两可-通过查看该方法,您不知道它是否应该返回bool或throw,或者bool确切指示什么。

可能重复:我更喜欢
isNull
。特别是最后一个听起来像“如果另一个东西是空的,就检查它,否则就不要检查。”:)@litb:
checkWhetherNull()
;-)此方法checkIfNULL确实出现错误。如果对象为null,则可以假定此方法返回true。那么checknotnulls呢?为什么在代码中设置一个空值是我的第一个问题。听起来您仍然在考虑使用Java或C语言,“您应该遵循每种语言中标准库使用的样式”。嗯,我在C++中根本不做这个。我喜欢我的类有首字母大写的名称,即使标准库类没有首字母大写。所以我猜,“遵循图书馆的风格,除非图书馆有自己的特殊风格”…这是关于风格的,但问题是关于选择有意义的名字