2011-10-23 11 views
0

プロパティのgetアクセサによって返されるタイプは、setアクセサによって使用されるタイプと異なる場合がありますか?プロパティセッタータイプ他の値がプロパティに設定されていますか?

private string[] artists; 
public string[] Artists 
{ 
    get { return artists[0]; } //heree getter return string than string[] 
    set { artists = value; OnPropertyChanged("Artist"); } 
} 
+0

注意を返す義務だ満たしていないので、あなたのコードが違法であることを確認するために、プレーンです。 –

答えて

2

いいえ、これは機能しません。

あなたは別のプロパティを追加し、ONPCでそれを含めることができます

public string Artist 
{ 
    get { return artists[0]; } 
} 

public string[] Artists 
{ 
    // get { return artists; } // get string[] is optional 
    set { artists = value; OnPropertyChanged("Artist"); OnPropertyChanged("Artists");} 
} 

は、いくつかの文脈で意図した用途のサンプルを提供し、あなたは、より良い答えを得る可能性があります。

+0

あなたのコードは、セッターによって設定された値に到達することを可能にします。 OPコードはありません。この意図が文書化されていないため、これがもちろん意図の一部であるかどうかは分かりません。私の意見では、アーティストの上に出て行くことはOPコードに近いでしょう。 (私の推測が外れている場合は、重要でないかもしれない書き込み専用のプロパティを持つことができないかもしれないと思っています) –

+0

@Rune:ここでの使用を想像するのは難しいです。だからこそ私はいくつかの文脈を求めました。 –

+0

私は全く同意します。私は主に、高い光に対するコメントを書いて、ゲッターを放出することが可能であった(通常は変だが) –

1

いいえ、これはできません。別の型を返すために別のプロパティを作成する必要があります。

0

これが可能なのはなぜですか。戻り値の型を宣言すると、このHASが返されます。

0

いいえ、できません。あなたのgetアクセサは、それが `OnPropertyChangedを(「アーティスト」)`ここで彼プロパティ名と一致しないことstring[]

// you define the Artists property as a string[], 
// therefore the get accessor must return a string[] 
public string[] Artists 
{ 
    // you are returning only a string 
    get { return artists[0]; } 
関連する問題