2013-10-23 121 views
0

我有一个有很多属性的类。设置属性时设置其他属性

Inparticlular,2这样的属性是相关的。

public string FileName { get; set; } 
public string Path { get; set; } 

文件名属性使用的XmlReader设置,但我不希望存储在XML文件的路径。

我想要做的是设置FileName属性的值,并设置Path属性。我有2个问题:

  1. 是否设置属性这种做法好的做法?
  2. 当从XmlReader进行映射时,是否有更好的方法来实现这一点?
+0

如果FileName包含完整路径,为什么不在FileName的setter中设置Path?或者将路径更改为返回FileName路径的只读属性? –

+0

你的问题不清楚,可能是主观的。提供更多的代码并解释你认为的问题。 –

回答

1

尝试类似这样的东西。

private string path; 

public string FileName { get; set; } 
public string Path 
{ 
    get 
    { 
     return path; } 
    set 
    { 
     path = value; 
     FileName = Path.GetFileName(value); 
    } 
} 
+0

这是相反的 - 我只想存储文件名,但即使如此,您也遵循了我采用的相同原则。只是不认为这是否被认为是好的。 – dotnetnoob

1

如果一个属性可以从另一个属性计算出来,通常的做法是做到这一点:每当访问它时计算它。例如:

public string Path { get; set; } 

public string FileName 
{ 
    get { return System.IO.Path.GetFileName(this.Path); } 
}