lin*_*lnk 1 c# visual-studio-2010 compiler-warnings
让我说我有这个
public class MyClass
{
public string myMessage { get; set; }
void MyMethod()
{
string myMessage;
}
}
Run Code Online (Sandbox Code Playgroud)
我不应该得到一个警报约myMessage
在MyMethod
隐藏(?)中myMessage
的类属性?我建立时,我没有得到任何效果.我如何激活此检查?
这里的问题是我们无法区分有效的,理想的隐藏案例和意外的隐藏案例.我们尝试在以下情况下保留警告:(1)代码几乎肯定是错误的;(2)有一种直接的方法来重写代码,以便在实际需要的情况下消除警告.
这通常是一个理想的情况,因为:
class Frog
{
private string name;
public Frog(string name)
{
this.name = name;
Run Code Online (Sandbox Code Playgroud)
您不希望将字段"name"更改为其他内容,因为它完全是描述性的.您不希望将参数"name"更改为其他内容,因为您希望能够new Frog(name: "Kermit")
在C#4或Visual Basic中执行此操作.由于需要隐藏并且代码正确,因此我们不希望产生隐藏警告.
我知道这种情况没有任何警告.在内部MyMethod()
,您可以使用this.myMessage
消除本地和类属性之间的歧义.
仅供参考,物业通常是TitleCased,而当地人是camelCased.使用该约定可以防止命名冲突,如列出的冲突.
归档时间: |
|
查看次数: |
213 次 |
最近记录: |