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

时间:2012-07-07 13:29:56

标签: c#

我有以下内容:

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。

5 个答案:

答案 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);
    }
}