public abstract class ThreadArray<T> where T : ThreadArrayConfig, new()
{
}我对这行代码比较迷茫了···
那位大大能够详细解释下 class ThreadArray<T> where T : ThreadArrayConfig, new() 这个语法的含义么(其中ThreadArrayConfig是个一类)?
{
}我对这行代码比较迷茫了···
那位大大能够详细解释下 class ThreadArray<T> where T : ThreadArrayConfig, new() 这个语法的含义么(其中ThreadArrayConfig是个一类)?
解决方案 »
- c#封装exe成DLL
- 如何用C#.NET解压DELPHI 的流压缩文件?
- ado操作excel,字段名中包含非法字符的问题
- OFFICE论坛无人应答的问题
- 请问winfrom里的常用控件有哪写
- [新手]在线等待:C# 操作 ORACLE 数据库的问题
- 如果重写 CS2.0里的MEMBERSHIP方法啊
- 已经系统用户名,取得该用户所对应的C:\Users\ABC\AppData\Roaming路径
- 奇怪问题:绑定成功 但显示的数据和数据库中不一样
- 请教一个简单问题,C#中如何使用 pen 画一条直线?!
- 关于用FileStream的异步写的方法多线程写日志的问题。 是否能保证写入的顺序?
- 求正则表达式
表示T必须是继承自ThreadArrayConfig,并且拥有无参数的公共构造函数。
new() 约束类型T必须具有无参的构造函数
new()告诉编译器,该T支持无参数构造,即可以T t = new T();
where T,是用来约束T的。
看看 泛型 的作用,类似模板, 实际上配置项是可扩展的
看看是不是你这种用法?--对于其它用法我一时想不出来。///定义类
//点
public class Point
{
public int x { get; set; }
public int y { get; set; }
public Point(int x,int y)
{
this.x = x;
this.y = y;
}
}
//颜色
public class objValue : Point
{
public object value {get;set; }
public objValue(object value)
:base(0,0)
{
this.value = value;
}
public objValue(object value,int x,int y)
: base(x, y)
{
this.value = value;
}
public objValue()
: base(0, 0)
{
this.value = null;
}
}
//颜色点收集器。
public class Collection<T> where T : Point, new()
{
public List<T> value{get;set;}
public void add(T t)
{
this.value.Add(t);
}
public int getCount()
{
return this.value.Count;
}
public bool remove(int index)
{
if (0 <= index && index < this.value.Count)
{
this.value.RemoveAt(index);
return true;
}
else
{
return false;
}
}
}
//用法:
Collection<objValue> valuePoints = new Collection<objValue>();
valuePoints.add(new objValue("blue",1,2));//加入一点
valuePoints.add(new objValue("red", 10, 10));//加入一点
//....
//移除第0个元素
if (true == valuePoints.remove(0))
{ //成功
}
else
{
//失败
}