C#基础 Type IsAssignableFrom 类是否实现了指定的接口

  • .NET Framework : 4.7.2
  •        IDE : Visual Studio Community 2019
  •         OS : Windows 10 x64
  •     typesetting : Markdown
  •         blog : blog.csdn.net/yushaopu
  •        github : github.com/GratefulHeartCoder

code

using System;

namespace ConsoleApp
{
     
    public interface ISayHello
    {
     
        void SayHello();
    }

    class CapablePerson : ISayHello
    {
     
        public void SayHello()
        {
     
            throw new NotImplementedException();
        }
    }

    class UnachievablePerson
    {
     

    }

    class Program
    {
     
        static void Main(string[] args)
        {
     
            Type tpISayHello = typeof(ISayHello);
            Type tpCapablePersonClass = typeof(CapablePerson);
            Type tpUnachievablePersonClass = typeof(UnachievablePerson);

            if (tpISayHello.IsAssignableFrom(tpCapablePersonClass))
            {
     
                Console.WriteLine(tpCapablePersonClass.Name + "实现了接口" + tpISayHello.Name);
            }
            else
            {
     
                Console.WriteLine(tpCapablePersonClass.Name + "没有实现接口" + tpISayHello.Name);
            }

            if (tpISayHello.IsAssignableFrom(tpUnachievablePersonClass))
            {
     
                Console.WriteLine(tpUnachievablePersonClass.Name + "实现了接口" + tpISayHello.Name);
            }
            else
            {
     
                Console.WriteLine(tpUnachievablePersonClass.Name + "没有实现了接口" + tpISayHello.Name);
            }

            Console.ReadKey();
        }
    }
}

result

CapablePerson实现了接口ISayHello
UnachievablePerson没有实现了接口ISayHello

resource

  • [文档] docs.microsoft.com/zh-cn/dotnet/csharp
  • [规范] github.com/dotnet/docs/tree/master/docs/standard/design-guidelines
  • [源码] referencesource.microsoft.com
  • [平台] www.csdn.net
  • [ IDE ] visualstudio.microsoft.com/zh-hans
  • [.NET Core] dotnet.github.io


感恩曾经帮助过 心少朴 的人。
C#优秀,值得学习。.NET Core具有跨平台的能力,值得关注。
Console,WinForm,WPF,ASP.NET,Azure WebJob,WCF,Unity3d,UWP可以适当地了解。
注:此文是自学笔记所生,质量中下等,故要三思而后行。新手到此,不可照搬,应先研究其理象数,待能变通之时,自然跳出深坑。

你可能感兴趣的:(CSharp,基础,c#)