C# where泛型约束
2023-09-14 09:03:18 时间
最近无意中看到了:http://msdn.microsoft.com/zh-cn/library/bb384067.aspx。但是,人笨啊,木有看懂到底是啥意思,木办法自己写一个试试吧,权当做个笔记
例子如下:
using System;
using System.Collections.Generic;
using System.Linq;
using
C#(五十一)之泛型的约束 基类约束有两个重要的目的。 1:它允许在泛型类中使用有约束指定的基类成员。 2:确保只能使用支持指定基类或派生类的类型实例。
C#语法——泛型的多种应用 本篇文章主要介绍泛型的应用。 泛型是.NET Framework 2.0 版类库就已经提供的语法,主要用于提高代码的可重用性、类型安全性和效率。 泛型的定义下面定义了一个普通类和一个泛型类,我们可以明确看到泛型类和普通类最大的区别就是多了一个。
最近无意中看到了:http://msdn.microsoft.com/zh-cn/library/bb384067.aspx。但是,人笨啊,木有看懂到底是啥意思,木办法自己写一个试试吧,权当做个笔记
例子如下:
接口:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WhereTest /// summary /// 水果接口 /// /summary public interface IFruit //水果名称 string FruitName get; set; string GetName(); /*接口中只能包含方法、属性、索引器和事件的声明。 * 不允许声明成员上的修饰符,即使是pubilc都不行,因为接口成员总是公有的,也不能声明为虚拟和静态的。 * 如果需要修饰符,最好让实现类来声明。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WhereTest /// summary /// 梨子类 /// /summary public class Peach : IFruit //无参、公共 构造函数 public Peach() private string fruitName; string IFruit.FruitName return this.ToString(); ; fruitName = value; string IFruit.GetName() return string.IsNullOrEmpty(fruitName) ? "木有找到名字" : fruitName;创建一个带有泛型约束的类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WhereTest /// summary /// 带有泛型约束的类 /// /summary /// typeparam name="T" /typeparam public class FruitMarket T where T : IFruit, new()//new()的意思是,这个T必须有public构造函数 T item = new T(); public void FruitSayHello() item.FruitName = "我是梨子"; Console.WriteLine("你好:" + string.Format("Fruit:{0}", item.GetName())); Console.ReadKey(); /*在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制。 * 如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编译时错误。*/由于有where字句的泛型约束,所以,创建FruitMarket的对象时,T的类型只能是继承自IFruit接口的类。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WhereTest class Program static void Main(string[] args) //实例化之后 只能在static方法中调用相应的方法,否则 根本找不着peach变量 FruitMarket Peach peach = new FruitMarket Peach peach.FruitSayHello(); }
运行结果:
本文仅仅是一个用法案例,具体的详细内容,请参照:http://blog.csdn.net/jiankunking/article/details/42876587
测试代码如下:http://download.csdn.net/detail/xunzaosiyecao/8461671
C#(五十一)之泛型的约束 基类约束有两个重要的目的。 1:它允许在泛型类中使用有约束指定的基类成员。 2:确保只能使用支持指定基类或派生类的类型实例。
C#语法——泛型的多种应用 本篇文章主要介绍泛型的应用。 泛型是.NET Framework 2.0 版类库就已经提供的语法,主要用于提高代码的可重用性、类型安全性和效率。 泛型的定义下面定义了一个普通类和一个泛型类,我们可以明确看到泛型类和普通类最大的区别就是多了一个。
相关文章
- c# mysql executenonquery_C#与数据库访问技术之ExecuteNonQuery方法
- 编写高质量代码改善C#程序——使用泛型集合代替非泛型集合(建议20)
- C#应用Newtonsoft.Json操作json详解编程语言
- c#常用正则表达式,验证邮箱,Url,电话号码等详解编程语言
- 用C#操纵IIS(代码)
- C#Split分隔字符串的应用(C#、split、分隔、字符串)
- URL中去除指定参数实现C#代码
- c#自定义泛型类的实现
- 浅谈C#2.0泛型中的变化:default关键字
- c#实现用SQL池,多线程定时批量执行SQL语句的方法
- C#正则表达式分解和转换IP地址实例(C#正则表达式大全c#正则表达式语法)
- 关于C#泛型列表List<T>的基本用法总结
- C#判断两张图片是否一致的快速方法
- c#泛型序列化对象为字节数组的示例
- C#泛型集合Dictionary<K,V>的使用方法
- C#实现treeview绑定的方法
- C#泛型和反射实例解析
- C#通过反射创建自定义泛型
- C#生成code128条形码的方法
- C#中子类调用父类的实现方法