|
2
|
| psubsee2003 Miki Shah · 技术社区 · 16 年前 |
|
|
1
8
对象定向我的朋友。从一个VB6的角度来看,这可能不是你所习惯的。但是,与其有file1->file5,不如有一个“cvsfile”对象,如果您真的必须这样做,那么您可以从该对象派生。这会在很多方面帮助你。 多态性 查看有关如何使用的msdn Polymorphism in C# 来自msdn的代码段:
编辑 只是为了清楚一点
如果您想使用虚拟方法:
在这种情况下,结果是
所有示例均取自msdn。 如何将此应用于示例 假设您有一个loadcv方法,而不是有5个返回每个对象的不同方法,您可以很容易地说:“嘿,我将返回一个cvsfile,您不在乎其他任何东西吗?”. 那里有很多好的旋转木马,“儿童节目”有关于基本原理的最好的插图。看看这个: Object Orientation For Kids (不冒犯) |
|
|
2
4
有一些很好的答案可以让大家
您拥有的所有文件类都是相同的,除了
你过去常说的话
你现在就用
如果字段名实际上比
|
|
|
3
2
为什么不将对象(所有.NET类型的基)用于“未知”类型呢?然后您可以根据需要测试/投射它… 但是,函数重载有什么问题?似乎非常适合这种情况。不要忘记,您可以拥有5个公共重载函数,这些函数可以委托给私有函数,从而以您希望的任何方式实现您的目标。 |
|
|
4
2
你 可以 做这个,但是你 不应该 :
泛型的要点是编写代码 完全通用的 .readfile的实现只能处理类型file1到file5,因此不能 通用的 . 一个更好的方法如其他人所说:找到所有文件格式的底层抽象,并创建一个表示该抽象的类层次结构。 但也许更好的方法还是“什么都不做”。您现在有了工作代码。我知道现在想做工作以避免将来的维护成本,但是你必须权衡那些潜在的成本(可能永远无法实现)和建造一些高度通用的东西的成本,因为你可能不需要,或者更糟的是,在将来可能不会真正做到你想要的。我说坚持你所知道的有效。 |
|
|
5
1
你必须做到
|
|
|
6
1
我有点无聊…下面是一个使用泛型、扩展方法和Linq…欢迎使用.NET 3.5:)
|
|
|
7
1
使用虚拟或抽象函数。
… 在创建时,假设您有一个
总是在基类的虚函数上操作,从不处理 直接实施。 祝你好运。 |
|
|
8
1
使用通用方法:
当然,这并不能解决继承问题,您仍然需要在上面的“as”子句中转换为一些基类或接口。 编辑:修改了我的代码,让我说的更清楚一点。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |