Điều này có vẻ là "bài tập về nhà-ish" và/hoặc tầm thường, nhưng nó là dành cho mục đích kinh doanh thực sự; đó là cách dễ nhất tôi có thể nghĩ đến để giải thích những gì tôi đang cố gắng làm.Xác định các loại có nguồn gốc từ một danh sách các đối tượng lớp cơ sở
Giả sử tôi có lớp học Động vật và một số lớp khác (Chim, Mèo, Kangaroo). Mỗi người trong số này được thừa hưởng từ Động vật.
Animal có thể trông như thế này:
public class Animal
{
public Animal()
{
}
public string Name { get; set; }
public string AnimalType { get; set; }
public List<Animal> Friends { get; set; }
}
Kangaroo có thể trông như thế này:
public class Kangaroo : Animal
{
public Kangaroo()
{
}
public int TailLengthInches { get; set; }
}
Giả sử con kangaroo có hai người bạn, một con chim và một con mèo. Làm thế nào tôi có thể thêm những người vào danh sách của "Động vật" bạn bè (như loại động vật), nhưng bảo tồn khả năng truy cập các thuộc tính của các lớp học có nguồn gốc? (như trong, tôi vẫn cần phải có khả năng làm việc với các đặc tính cụ thể cho loại động vật, ví dụ như FeatherColor cho chim, mặc dù chúng sẽ được coi là "động vật".
Lý do tôi Tôi đang cố gắng làm điều này là khi sau này tôi nhận được danh sách "bạn bè" của động vật, điều quan trọng là tôi biết loại động vật mà bạn bè là gì. Tùy thuộc vào loại động vật (cho dù đó là chim, mèo, v.v ...) Tôi muốn làm một cái gì đó khác nhau (hiển thị một mẫu khác nhau trên một trang ASP.NET, trên thực tế, nhưng tôi không cần trợ giúp với điều đó cụ thể)
Tôi đoán nó sẽ giảm xuống ... nếu tôi có một danh sách các động vật, làm thế nào để tôi biết những gì các loại có nguồn gốc đã được cho mỗi đối tượng trong danh sách, vì vậy tôi có thể bỏ chúng trở lại loại có nguồn gốc của họ hoặc làm điều gì khác th tại cho phép tôi để có được các thuộc tính cụ thể, khác nhau trên mỗi loại có nguồn gốc?
Cảm ơn!
Mẹo: để lấy mã để hiển thị một cách chính xác, sử dụng nút 101.010 trong trình soạn thảo (hoặc thụt bởi bốn không gian) . – itowlson