我有以下内容:
public class Content {
public string PartitionKey { get; set; }
public string RowKey { get; set; }
...
}
public class ContentViewModel
{
public string RowKey { get; set; }
public Content Content { get; set; }
public Boolean UseRowKey { }
}
有人可以告诉我如何编写UseRowKey只能读取,如果Content.RowKey第一个字符是“X”则返回true。
答案 0 :(得分:3)
您可以使用此代码:
public Boolean UseRowKey {
get {
return Content != null
&& Content.RowKey != null
&& Content.RowKey.Length > 0
&& Content.RowKey[0] == 'X';
}
}
如果构造函数和setter验证这些条件始终为false,则可以删除其中一些检查。例如,如果您在构造函数中设置内容并向setter添加检查以捕获Content
的空分配,则可以删除Content != null
部分。
答案 1 :(得分:1)
如何使用get从C#类返回一个布尔值?
你不能因为类没有返回值,只有方法有(和属性 - get方法是方法的特例)。
现在:
有人可以告诉我如何编写UseRowKey只能读取并返回它 如果Content.RowKey第一个字符是“X”
,则为true
但这不是“从类中返回布尔值”,你知道。
public bool UseRowKey { get { return RowKey.StartsWith("X"); }}
(未经测试,您可能需要调试)
只读:不提供套装。 第一个字符X:编程。
答案 2 :(得分:0)
public Boolean UseRowKey
{
get
{
if(!String.IsNullOrEmpty(RowKey))
{
return RowKey[0] == 'X';
}
return false;
}
}
答案 3 :(得分:0)
public bool UseRowkey
{
get
{
return this.Content.RowKey[0] == 'X';
}
}
顺便说一句,看起来你正在做ViewModel模式错误。 ViewModel不应该是Model的包装器。 Model的值应该通过一些外部代码映射到ViewModel。例如,使用AutoMapper。
答案 4 :(得分:0)
又一个选项......这个选项同时接受大写X
和小写x
。
public bool UseRowKey
{
get
{
return Content != null
&& !string.IsNullOrEmpty(Content.RowKey)
&& Content.RowKey
.StartsWith("x", StringComparison.InvariantCultureIgnoreCase);
}
}