我知道标题可能会更具描述性/更好的措辞,但它是我能想到的最好的。在方法中传递属性作为参数
目前,我有一类具有很多看起来像下面的那些方法:
private static void UpdateArtists()
{
artists.Clear();
foreach (AudioInfo entry in library_entries)
{
artists.Add(entry.Artist, entry);
}
}
private static void UpdateAlbums()
{
albums.Clear();
foreach (AudioInfo entry in library_entries)
{
albums.Add(entry.Album, entry);
}
}
private static void UpdateGenres()
{
genres.Clear();
foreach (AudioInfo entry in library_entries)
{
genres.Add(entry.Genre, entry);
}
}
private static void UpdateYears()
{
years.Clear();
foreach (AudioInfo entry in library_entries)
{
years.Add(entry.Year, entry);
}
}
不用说,写几十个,这些是很烦人的。所以我想知道,如果它能够简化它,使的方法是这样的:
private static void Update(Dictionary<string, AudioInfo> dictionary, AudioInfo.Property property)
{
dictionary.Clear();
foreach (AudioInfo entry in library_entries)
{
dictionary.Add(entry.property, entry);
}
//Where "property" is a property in the AudioInfo-class.
}
那是可行的,如果是,怎么样?
谢谢!
请注意,根本不需要'ref',类总是通过引用传递。 –
嘿,你当然是对的。这就是你整晚坐下时所得到的。 – Heidenreich
可能重复[如何传递一个类的属性作为方法的参数?](http://stackoverflow.com/questions/1178574/how-can-i-pass-a-property-of-a -class-as-a-a-parameter-of-method) – nawfal