Мне любопытно узнать, является ли необязательный параметр, введенный в C # 4, обратно совместимым или нет?
Позвольте мне прояснить мой вопрос на простом примере.Предположим, я пишу следующий код в C # 4 на .Net2 в VS2010:
public void Foo(int val1, int val2, int val3 = 5){ .... }
Теперь я скомпилировал код, создал dll и сослался на проект C # 2 / C # 3 в .Net2,В редакторе кода (кроме VS2010, скажем VS2008), что я увижу в intellisense?
Два перегруженных метода, например:
public void Foo(int val1, int val2)
public void Foo(int val1, int val2, int val3)
Что-то еще вроде:
public void Foo(int val1, int val2, int val3)
public void Foo(int val1, int val2, int val3 = 5) //VS2008 is not supposed to show this
Как я должен вызывать метод C # 4 в проекте C # 2?