【发布时间】:2014-03-10 17:13:30
【问题描述】:
有人可以回答我吗 - 为什么我会收到此警告“表达式的结果始终为 'false',因为 'int' 类型的值永远不会等于 'int' 类型的 'null'?”
这里是代码
private char classLetter;
public char ClassLetter
{
get { return classLetter; }
set
{
if (classLetter == null)
{
classLetter = value;
RaisePropertyChanged("ClassLetter");
}
else throw new ArgumentOutOfRangeException();
}
}
如果我使用此代码,则不会出现警告
private char classLetter;
public char ClassLetter
{
get { return classLetter; }
set
{
if (classLetter.ToString() == null)
{
classLetter = value;
RaisePropertyChanged("ClassLetter");
}
else throw new ArgumentOutOfRangeException();
}
}
简而言之,我的问题是这样的
如何为 char 变量发出 int 警告?
编辑:'char' 应该包含任何拉丁字母或西里尔字母,不允许特殊符号和数字。应该如何过滤?
【问题讨论】:
-
您可以自己回答这个问题:
classLetter == null会是真的吗?classLetter的值是多少? -
你想写setter,它只允许设置一次属性吗?另外,你为什么不使用
char?,如果你想测试,那个属性是设置过的? -
@usr 好吧,假设我没有在与该字段相对应的文本框中输入任何内容-然后该字段为空。据我所知,这会导致一个空变量。如果我错了,请纠正我
-
@Dennis 我认为 char 是可以为空的类型,所以我没有看到使它可以为空的逻辑
-
如果您真的希望它为空,请使用“char?”而不是“字符”。另请阅读... msdn.microsoft.com/en-us/library/x9h8tsay.aspx
标签: c# variables char int compiler-warnings