C# 转换接口(interface)

标签 c#

Cast一个类到一个接口(interface)和在C#中将一个类转换为另一个类是一样的吗?这个过程是装箱还是拆箱?

interface Area
{
   string TxtArea
   {
     get;
     set;
   }
}

转换成它的接口(interface):

public void Test()

    {
       ExternArea extArea = new ExternArea();
       if(extArea is Area)
       {
         ((Area)extArea).TxtArea = "voila";
       }
    }

最佳答案

假设 ExternArea 是一个类而不是值类型(结构或枚举),则不涉及装箱。仅装箱曾经将值类型转换为引用类型实例。

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

Area area = extArea as Area;
if (area != null)
{
    area.TxtArea = "voila";
}

关于C# 转换接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4051952/

相关文章:

c# - 在 <permission> 标签上

c# - 用空格替换 Unicode 字符 "�"

c# - 将 wav 文件转换为 wav 文件(更改格式)

c# - 如何确定鼠标点击的位置

c# - 如何使用 SQL 参数从 SQL Server 获取数据集

c# - 单击更新按钮时 Datagridview 未更新

C# 在从 Excel 复制的字符串中找不到空格

C# 泛型类型 typedef/alias 和 InvalidCastException

c# - 在 ASP.Net 的 GridView 中获取 "checked"复选框的 rowID 值

javascript - 如何将json反序列化为C#列表对象