Why do extension methods not work with namespace aliasing?

后端 未结 2 1107
迷失自我
迷失自我 2021-01-01 20:46

This may be an ignorant question, but I\'m unsure why I can not use namespace aliasing and extension methods together.

The following example works just fine:

2条回答
  •  盖世英雄少女心
    2021-01-01 20:51

    Make sure to still add a non-aliased using statement:

    Program.cs

    using System;
    using ExtensionMethodTest.Domain; //DON'T FORGET A NON-ALIASED USING
    using MyDomain = ExtensionMethodTest.Domain;
    
    namespace ExtensionMethodTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                var m = new MyDomain.MyClass();
                var result = m.UpperCaseName();
            }
        }
    }
    

    MyClass.cs

    using System;
    
    namespace ExtensionMethodTest.Domain
    {
        public class MyClass
        {
            public string Name { get; set; }
        }
    }
    

    MyClassExtensions.cs

    using System;
    
    namespace ExtensionMethodTest.Domain
    {
        public static class MyClassExtensions
        {
            public static string UpperCaseName (this MyClass myClass)
            {
                return myClass.Name.ToUpper();
            }
        }
    }
    

提交回复
热议问题