Когда мы должны использовать ключевое слово псевдонима экстерна в C#?

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

33
задан masoud ramezani 27 February 2010 в 12:13
поделиться

2 ответа

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

Излишне говорить, что вам следует избегать попадания в такую ​​ситуацию для начала:)

30
ответ дан 27 November 2019 в 18:14
поделиться

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

using System;

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

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

  public decimal Balance { get; set; }

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

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

30
ответ дан 27 November 2019 в 18:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: