0

我有以下内容:

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。

4

5 回答 5

3

您可以使用以下代码:

public Boolean UseRowKey {
    get {
        return Content != null
            && Content.RowKey != null
            && Content.RowKey.Length > 0
            && Content.RowKey[0] == 'X';
    }
}

如果您的构造函数和设置器验证这些条件始终为假,您可以删除其中一些检查。例如,如果您在构造函数中设置内容并向设置器添加检查以捕获 的空分配Content,则可以删除该Content != null部分。

于 2012-07-07T13:31:36.950 回答
1

如何使用 get 从 C# 类返回布尔值?

你不能因为类没有返回值,只有方法有(和属性 - get 方法是方法的特例)。

现在:

有人可以告诉我如何将 UseRowKey 编码为只读并且如果 Content.RowKey 第一个字符是“X”则返回 true

但这不是“从类中返回布尔值”,你知道的。

public bool UseRowKey { get { return RowKey.StartsWith("X"); }}

(未经测试,您可能需要调试)

只读:不提供集合。第一个字符 X:编程。

于 2012-07-07T13:32:39.660 回答
0
public Boolean UseRowKey 
{  
   get
   {
       if(!String.IsNullOrEmpty(RowKey))
       {
           return RowKey[0] == 'X'; 
       }
       return false;

   }


}
于 2012-07-07T13:32:07.810 回答
0
public bool UseRowkey
{
    get
    {
        return this.Content.RowKey[0] == 'X';
    }
}

顺便说一句,您似乎在执行 ViewModel 模式错误。ViewModel 不应该是模型的包装器。Model 的值应该通过一些外部代码映射到 ViewModel。例如,使用 AutoMapper。

于 2012-07-07T13:33:14.780 回答
0

还有另一种选择......这个接受大写X和小写x

public bool UseRowKey
{
    get
    {
        return Content != null
            && !string.IsNullOrEmpty(Content.RowKey)
            && Content.RowKey
            .StartsWith("x", StringComparison.InvariantCultureIgnoreCase);
    }
}
于 2012-07-07T13:38:14.437 回答