2015-10-12 3 views
2

Это фундаментальный вопрос. При использовании объектов в качестве атрибута для объекта So Object2 имеет атрибут Object1.Именование объекта, который является атрибутом другого объекта с тем же геттером/установщиком, что и тип объекта

Можете ли вы использовать имя объекта как тип и имя для получателя и сеттера или второго объекта.

Class Object1{} 

Class Object2 
{ 
    Object1 Object1 {get; set;} 
    // OR 
    Object1 Object1_{get; set;} 
} 

Как я попробовал с тем же именем для простых программ, и это работает (хотя я не осмеливаюсь в сложный код с ним). Я понимаю, что может быть двусмысленность, но будет ли это работать для любого проекта?

+0

Похоже, вам нужно, так как вам нужно пройти квалификацию с объектом класса2, чтобы добраться до поля. если class1 вложен или имеет статические методы, которые могут вызвать проблемы, если методы имеют одинаковое имя. –

+0

@BenKnoble да, я тоже думал, что если это статично, это будет проблемой, я бы просто хотел назвать все мои объекты с тем же именем .. это было бы просто. Я никогда не носил его через весь проект, просто играл с ним. Я не хочу, чтобы это потраченное время на рефакторинг кода, если я обнаруживаю, что строка будет вызывать ошибку, как неоднозначный вызов или? –

+0

нет проблем с этим .Net он сам делает то же самое: атрибут результата dialoge класса Form называется как его тип, и вы найдете его во многих других атрибутах – Aladdin

ответ

2

Да, вы можете это сделать. На самом деле это очень распространенная картина в C#

class Foo 
{ 
    Bar Bar {get; set; } 
} 
+0

Спасибо за быстрый ответ! –