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';
    }
}

コンストラクターとセッターがこれらの条件が常にfalseであることを確認した場合は、これらのチェックの一部を削除できます。たとえば、コンストラクターでコンテンツを設定し、セッターにチェックを追加してのnull割り当てをトラップ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 に答える