C# where泛型约束
2023-09-14 09:02:13 时间
最近无意中看到了: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# 11的静态接口方法改进 面向约定 的设计
- C# 语言程序设计笔记
- 开心档之C# 匿名方法我们已经提到过,委托是用于引用与其具有相同标签的方法。换句话说,您可以使用委托对象调用可由委托引用的方法。匿名方法(Anonymou
- Sun认为C#不会替代Java
- ASP.net(c#)打造24小时天气预报及实时天气
- C#正则判断一个数字的格式是否有逗号的代码
- c#连接access数据库config配置
- C#泛型与非泛型性能比较的实例
- c#泛型类型参数与约束的深入分析
- c#自定义泛型类的实现
- 介绍C#泛型类在使用中约束
- 浅谈C#泛型的用处与特点
- c#泛型序列化对象为字节数组的示例
- C#实现winform渐变效果的方法
- C#泛型集合Dictionary<K,V>的使用方法
- C#中的程序集和反射介绍
- C#泛型实例详解
- C#通过反射创建自定义泛型
- C#中的IDisposable模式用法详解