Rob*_*ser 3 .net c# naming-conventions keyword
在我的命名约定中,我使用_name作为私有成员变量.我注意到如果我使用ReSharper自动生成构造函数,如果该成员是关键字,它将生成一个转义关键字.例如:
class IntrinsicFunctionCall
{
private Parameter[] _params;
public IntrinsicFunctionCall(Parameter[] @params)
{
_params = @params;
}
}
Run Code Online (Sandbox Code Playgroud)
这通常被认为是不好的做法还是可以的?它经常发生在@params和@interface上.
编辑:这实际上并没有为变量名添加前缀.如果从不同的.NET语言(即F#)访问该变量,它就是params
.事实上,在C#中,如果你写@x
它完全等同于x
.
使用语言关键字作为标识符会影响可读性.当然,正确的语法高闪电有点帮助,但最好不要只依赖编辑器功能.
考虑以下(夸张地说不可读,显然:-))代码:
interface IInterfaceFactory<T>
{
T CreateInstance(params object[] @params);
}
class SomeClass
{
IMyOtherInterface _interface;
public IMyOtherInterface Interface
{
get { return _interface; }
}
public SomeClass(params object[] @params)
{
SomeInterface<IMyOtherInterface> interfaceFactory = new SomeInterface<IMyOtherInterface>();
IMyOtherInterface @interface = interfaceFactory.CreateInstance(@params);
if (@interface->IsValid())
{
_interface = @interface;
}
else
{
_interface = interfaceFactory.CreateInstance();
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
732 次 |
最近记录: |