Подтвердить что ты не робот

Когда мы должны использовать ключевое слово extern alias в С#?

Когда мы должны использовать ключевое слово extern alias в С#?

4b9b3361

Ответ 1

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

Излишне говорить, что вы должны попытаться избежать этой ситуации, чтобы начать с :)

Ответ 2

Это там, чтобы помочь вам вытащить себя из действительно глубокой дыры, вырытой версией. Скажите, что ваша первая версия вашей программы использует этот класс

using System;

namespace Acme.Financial.Banking {
  [Serializable]
  public class BankAccount {
    public double Balance { get; set; }
    //...
  }
}

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

  public decimal Balance { get; set; }

Проблема решена, у следующего клиента есть счастливые балансы. Пока вас не попросят обновить существующего клиента с большим количеством серийных записей в старом формате. Большая проблема, вы не можете десериализовать записи больше, так как класс изменился.

extern alias решает вашу проблему, вы можете ссылаться как на старую версию, так и на новую версию класса в вашем коде, даже если имена пространства имен и имена классов одинаковы.