Tôi biết tiêu đề có thể có phần mô tả/mô tả tốt hơn một chút, nhưng đó là điều tốt nhất tôi có thể nghĩ ra.Chuyển thuộc tính dưới dạng thông số trong phương thức
Hiện nay tôi có một lớp học với rất nhiều các phương pháp tìm kiếm giống như những người dưới đây:
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);
}
}
Không cần phải nói, viết hàng chục trong số này là rất mệt mỏi. Vì vậy, tôi đã tự hỏi nếu nó có thể đơn giản hóa nó và làm cho một phương pháp một cái gì đó như thế này:
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.
}
Đó là doable, và nếu nó được; làm sao?
Cảm ơn!
Lưu ý rằng bạn không cần 'ref' chút nào, các lớp luôn được chuyển qua tham chiếu. –
Heh, bạn đã đúng. Đó là những gì bạn nhận được khi bạn ngồi suốt đêm. – Heidenreich
có thể trùng lặp của [Làm thế nào tôi có thể vượt qua một tài sản của một lớp như một tham số của một phương pháp?] (Http://stackoverflow.com/questions/1178574/how-can-i-pass-a-property-of-a -class-as-a-parameter-of-a-method) – nawfal