Я получаю ошибку компиляции, потому что компилятор думает, что Path.Combine относится к моему полю, но я хочу, чтобы он ссылался на класс System.IO.Path. Есть ли хороший способ справиться с этим, кроме как всегда писать FQN, например System.IO.Path.Combine()?C#: неопределенность пространства имен свойств/полей
using System.IO;
class Foo
{
public string Path;
void Bar(){ Path.Combine("",""); } // compile error here
}
Я редактировал свой ответ, чтобы добавить этот пример, но у вас уже есть это +1 к вам! –
Это хороший ответ; однако я настоятельно призываю большинство людей, когда это возможно, избегать использования имен, явно противоречащих типам .NET. Такое имя, как FilePath или DataPath, или, может быть, может быть лучшим способом устранения неоднозначности собственности, в то же время добавляя ясность. Тем не менее, я думаю, что это один из тех случаев, когда имя класса Path было, вероятно, плохим выбором со стороны разработчиков .NET, поскольку это общее и полезное имя для свойств. – LBushkin
Или избегайте псевдонимов полностью, особенно если это просто разовый конфликт. –