interface不是类型,interface是关键字,定义为 interface 是什么类型,是由其“变量”决定的。如果一定要强去理解“接口到底是什么类型”?那么它必然是引用类型(这句话与前面那句矛盾)。

class也不是类型,只不过定义为 class 都是引用类型。

看看实例吧:

    public interface ITest{string Text { get; set; }}public struct TestStruct : ITest{public string Text { get; set; }}public class TestClass : ITest{public string Text { get; set; }}class Program{static void Main(string[] args){Console.WriteLine("Test1:");Test1();Console.WriteLine("Test2:");Test2();Console.ReadKey();}static void Test1(){TestStruct t1 = new TestStruct();t1.Text = "我爱辣妹";Func(t1);Console.WriteLine(t1.Text);TestClass t2 = new TestClass();t2.Text = "我爱辣妹";Func(t2);Console.WriteLine(t2.Text);}static void Test2(){ITest t1 = new TestStruct();t1.Text = "我爱辣妹";Func(t1);Console.WriteLine(t1.Text);ITest t2 = new TestClass();t2.Text = "我爱辣妹";Func(t2);Console.WriteLine(t2.Text);}static void Func(ITest test){test.Text = "辣妹爱我";}}

转载于:https://www.cnblogs.com/sofire/archive/2010/12/07/1898658.html

interface 是什么类型?相关推荐

  1. go空接口interface{}是任意类型

  2. Go 学习笔记(35)— Go 接口 interface (接口声明、接口初始化、接口方法调用、接口运算、类型断言、类型查询、空接口)

    1. 接口概念 接口是双方约定的一种合作协议.接口实现者不需要关心接口会被怎样使用,调用者也不需要关心接口的实现细节.接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式.类型及结构. 接口内部存 ...

  3. golang interface 转 int string slice struct 类型

    在golang中,interface{}允许接纳任意值,int, string, struct,slice等,因此我可以很简单的将值传递到interface{} package main import ...

  4. go 类型断言_深入理解Go的interface内部执行原理

    Go的interface是由两种类型来实现的: iface 和 eface iface指的是接口中申明有方法(至少1个),eface表示接口中没有申明方法 后面会讲到这两个到底是什么,所以这里需要先不 ...

  5. 【ts】typescript高阶:键值类型及type与interface区别

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 typescript高阶之键值类型及type与interface区别 前言 一.键值类型的语法 1.语法 2.错误例子 3.正确例子 ...

  6. Go 学习笔记(27)— type 关键字(类型定义、类型别名、类型查询、定义接口、定义结构体)

    1. 类型别名定义 定义类型别名的写法为: type TypeAlias = Type 类型别名规定: TypeAlias 只是 Type 的别名,本质上 TypeAlias 与 Type 是同一个类 ...

  7. 【Go语言】【14】GO语言的接口类型

    1.什么是接口? 在面向对象的语言中,接口是用来限制实现类行为的.怎么理解这句话呢? 定义一个Person接口,我只会站在我的角度上考虑问题,比如Person(人),自然想到会吃饭.睡觉等: inte ...

  8. java不能修改表_java中不可修改列表的类型是什么

    Actually I need to know at compile time that an unmodifiable list is being modified. 这是不可能的. 或者至少,如果 ...

  9. go interface转int_图解go反射实现原理

    Go反射的实现和 interface 和 unsafe.Pointer 密切相关.如果对golang的 interface 底层实现还没有理解,可以去看我之前的文章: Go语言interface底层实 ...

最新文章

  1. python 定义字典键为变量_在python字典中使用变量作为键名
  2. 使用扩展的 CodeIgniter 框架实现 RESTful 框架
  3. 数据结构和算法之——跳表
  4. java尝试编写macd,试验顶背离底背离
  5. abaqus linux 下载64位,SIMULIA ABAQUS 2016.0 Win64 Linux64 2DVD工程模拟的有限元
  6. 新浪uc2010免费下载
  7. python打包安卓的方法_打包发布Python模块的方法详解
  8. ORACLE DATAGUARD 数据库---创建逻辑备用数据库
  9. json为java对象配置一个函数_Java基础/利用fastjson反序列化json为对象和对象数组...
  10. 中了勒索病毒,该如何恢复数据?
  11. 聊一聊数学中的基本定理(二)——算术基本定理的价值
  12. 2022-2027年(新版)中国产权交易行业前景动态与未来发展形势报告
  13. 防止vps上SSH被猜测密码
  14. mysql数据库怎么该用户名和密码_如何修改MySql数据库的用户名和密码?
  15. 潇洒郎:批量压缩大师——python实现文件批量命名+批量加密码——GUI软件——打包exe文件
  16. GPRS使用AT指令发短信拨号
  17. photoshop 快捷键学习笔记
  18. Arista 交换机升级手册
  19. 易支付代付系统 易商付(espay.cn)提供 全新UI页面设计功能齐全
  20. AOV网络——初了解

热门文章

  1. 读保哥《ASP.NET MVC2开发实战》第二回(Model)
  2. 恢复时间目标(RTO)和恢复点目标(RPO)的差异
  3. 全国计算机等级考试16套一级,全国计算机等级考试16套.docx
  4. 安霸s2l 的IPC项目--进展2
  5. 联想z5 Android 9.0,联想Z5 Pro(安卓9.0)刷机教程 联想Z5 Pro刷机图解
  6. 自定义实现wcf的用户名密码验证
  7. 系统功能模块接口文档
  8. 2018年计算机类基础课试题答案,河南省 2018年计算机类基础课试题
  9. 【Redis高级应用总结】
  10. Android小闹钟程序【安卓进化十三】