作者dabiddabid (dabid')
看板C_Sharp
标题[问题] class能否做成自制型别
时间Wed Sep 16 14:09:07 2015
小弟最近无意间看到类别多型可以自制成类似list的东西,不知道观念对不对
还有想自制型别要如何做
class clsA<T> where T : clsB
{
private List<clsB> mB = new List<clsB>();
public T this[int Index]
{
get
{return (T) mB[Index];}
set
{mB[Index] = value; }
}
public void Add(clsB b)
{
........
}
}
class clsB
{
public int X;
}
这样我可以直接给实作後的东西使用Index作读取
clsA AAA = new clsA();
clsB BBB = new clsB();
BBB.X = 5;
AAA.Add(BBB);
然後对AAA[Index]的X作读写
return AAA[Index].X;
AAA[Index].X = 10;
我现在想直接赋予AAA值或直接读取AAA然後回传一个我想要的值
AAA = 10;
return AAA;
这个class要如何做,还是不能做
类似宣告int
int iii;
iii = 10;
string sss = iii.ToString();
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.250.200.85
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1442383750.A.8FE.html
1F:→ m339606: 看不懂你的需求点在哪 09/16 23:34
2F:→ m339606: 应该说为什麽要这样做? 还是单纯只是想知道能不能做 09/16 23:35
3F:推 TameFoxx: AAA是一个Array AAA=10 是一个什麽样的概念?? 09/17 09:39
4F:→ TameFoxx: 你能不能讲清楚一点你的问题 09/17 09:39
抱歉我不知道要如何说明白
大致上是我想要直接把值给实作出来的class而非给class内部的变数
class clsBird
{
private string Name;
}
现在我想在任意时间点直接做强转型给值
class clsBird Bird = new Bird();
...
Bird = (clsBird)"ThirtyCM";
而非只能在一开始给建构值
clsBird Bird = new clsBird("ThirtyCM");
因为不是很懂强转型,弄半天弄不出来,所以上来请教大家
※ 编辑: dabiddabid (60.250.200.85), 09/18/2015 11:07:14
5F:推 juriolegend: operator 09/19 05:22