我在C#中的一些练习,我不明白的大局。如果这些应该在Java中实现,我没有问题。但我在C#中是新手,所以混淆了一些东西,我不知道te结构应该是什么样子。我看了一些explanasions,如: http://www.codeproject.com/Articles/15360/Implementing-IDisposable-and-the-Dispose-Pattern-P和 http://msdn.microsoft.com/en-us/library/fs2xkftw.aspxC#类,subclases,IClonable,IDisposable
我有一流的,我做的LinkedList和ITST类型为节点,所以: LinkedList的链表=新的LinkedList 比我一些使菩提它的一些节点链表方法也在这里是方法print,它从链表打印元素。我的“对象”类是Node,其中我有构造函数,属性以及getter和setter。我有allso这里virtula方法打印,我不知道是什么shoudl我把这种方法,becuse这个节点类就是抽象类,在这里,我必须实现IDisposable方法:
public void Dispose() {}
protected virtual void Dispose(bool disposing) {}
这里,我并不undrsetend为什么我应该使用IDispose?在我看到的所有示例中,它都用于访问某个文件并处理图片。在一些例子中,我看到:
public interface IDisposable
{
void Dispose();
}
,我不知道如果我必须把这个在一些新的类,我shuld把它在同级别,甚至没有实现它。
而且我做了NodeLong和Nodestring的子类,它使用超类节点,我把一些新的属性和setters和getters。我也使用了打印方法。 我也不明白genercis。
Linearcollection类:
public class LinearCollection{
void Main(string[] args){
LinkedList<Node> linkedlist = new LinkedList<Node>
//calling methods for adding some elements, deleting, getting some elements
}
//implemented methods
public void Print(){
foreach(NodeElement item in linkedList){
// what to do??
}
}
我Nodeelemts类:
public abstract class Node:{
private bool _disposed;
//constructors
//properties, set, get ex:
private Object data;
public Object _data{
get{
rethurn this._data;
}
set{
this._data=value;
}
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing){
if(!_disposed){
if(disposing){
//disposed managed resources
}
//
}
_disposed = true;
//
}
virtual public void Print(){
//what to implemetn?
}
}
//stil the same file
public class NodeString : Node{
//prop
public string typeOfElement{ get set ...}
//new constructor where is involved new property
public overrride void Print()
{
Console.WriteLine(_data.ToString());
base.Print();
}
}
public class NodeLong : Node{
//prop
public long typeOfElement{ get set ...}
//new constructor where is involved new property
public overrride void Print()
{
Console.WriteLine(_data.ToString());
base.Print();
}
}
如果我让NodeLang:IClonable比我不能让NodeLang:节点。
我的指示说我必须在两个子类中使用IClonable方法,我不知道该如何使用它?如何在类Node中使用IDisposable?我希望我能理解吗?
所以最后的问题是它应该看起来像我的类,子类,IDisposable和ICloneable?
你的导师要求你做一些你在现实世界中不会做的事情。如果该类拥有非托管资源(如网络连接或数据库连接),则只应在类上实现IDisposable。 –
这个班的结构怎么样呢? – wanttobeprofessional
如果我使用genercis,这看起来会如何,但我不是很赞,我明白通用是什么... – wanttobeprofessional