C#转换接口

ozs*_*gal 2 c#

将类转换为接口与将类转换为C#中的另一个类相同吗?在此过程中是否发生了框或拆箱?

interface Area
{
   string TxtArea
   {
     get;
     set;
   }
}
Run Code Online (Sandbox Code Playgroud)

转换为它的界面:

public void Test()

    {
       ExternArea extArea = new ExternArea();
       if(extArea is Area)
       {
         ((Area)extArea).TxtArea = "voila";
       }
    }
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 10

假设ExternArea是一个类而不是一个值类型(struct或enum),那么就没有涉及到拳击.拳击只有不断转换值类型为引用类型实例.

请注意,as通常首选使用:

Area area = extArea as Area;
if (area != null)
{
    area.TxtArea = "voila";
}
Run Code Online (Sandbox Code Playgroud)

  • @user否,区域设置为null (2认同)