When must we use extern alias keyword in C#?

前端 未结 2 530
误落风尘
误落风尘 2020-11-30 12:25

When must we use extern alias keyword in C#?

2条回答
  •  情深已故
    2020-11-30 12:50

    It's there to help you hoist yourself out of a really deep hole dug by versioning. Say your first version of your program uses this class

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

    And you've been serializing lots of bank accounts records with it. And an accountant starts complaining about the balance sheet being off by a billionth of a penny, so you change the class:

      public decimal Balance { get; set; }
    

    Problem solved, the next customer has happy balance sheets. Until you're asked to upgrade an existing customer with lots of serialized records in the old format. Big problem, you cannot deserialize the records anymore since the class has changed.

    extern alias solves your problem, you can reference both the old version and the new version of the class in your code, even though the namespace names and class names are the same.

提交回复
热议问题