属性设置器类型其他值设置为属性?

时间:2011-10-23 11:55:03

标签: c#

属性的get访问者返回的类型可能与set访问者使用的类型不同吗?

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

4 个答案:

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

在某些背景下提供预期用途的样本,您可能会得到更好的答案。

答案 1 :(得分:1)

不,这是不可能的。您必须创建另一个属性才能返回另一种类型。

答案 2 :(得分:0)

为什么这是可能的。如果声明返回类型,则返回此HAS。

答案 3 :(得分:0)

不,不可能。很明显,您的代码是非法的,因为您的get访问者无法履行返回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]; }