во всем решении.
тим, у меня есть 2 метода расширения для строки, в 2 разных пространствах имен:
namespace test1
{
public static class MyExtensions
{
public static int TestMethod(this String str)
{
return 1;
}
}
}
namespace test2
{
public static class MyExtensions2
{
public static int TestMethod(this String str)
{
return 2;
}
}
}
Эти методы только для примера, они на самом деле ничего не делают.
Теперь давайте рассмотрим этот кусок кода:
using System;
using test1;
using test2;
namespace blah {
public static class Blah {
public Blah() {
string a = "test";
int i = a.TestMethod(); //Which one is chosen ?
}
}
}
Вопрос:
Я знаю, что будет выбран только один из методов расширения.
Какой это будет? и почему ?
Редактировать:
Это также беспокоит меня, но не так сильно, потому что это статический метод в статическом классе в конце концов:
Как я могу выбрать определенный метод из определенного пространства имен?
Обычно я бы использовалNamespace.ClassNAME.Method()
... Но это только превосходит саму идею методов расширения. И я не думаю, что вы можете использоватьVariable.Namespace.Method()