我正在使用 C# 进行一些练习,但我不了解大局。如果这些应该在 Java 中实现,我不会有问题。但是我是 C# 的新手,所以我把事情搞混了,我不知道结构应该是什么样子。我读了一些解释,例如:http: //www.codeproject.com/Articles/15360/Implementing-IDisposable-and-the-Dispose-Pattern-P 和 http://msdn.microsoft.com/en-us/library/ fs2xkftw.aspx
我有第一堂课,我制作 LinkedList,它的类型是节点,所以: LinkedList linkedlist = new LinkedList 比我在 puti 中通过一些方法在链表中创建一些节点,这里还有方法 print,它从链表中打印元素。
我的“对象”类是 Node,其中有构造函数、属性以及 getter 和 setter。我这里也有virtula方法打印,我不知道我应该在这个方法中放什么,因为这个节点类只是抽象类,在这里我必须实现 IDisposable 方法:
public void Dispose() {}
protected virtual void Dispose(bool disposing) {}
在这里我不明白为什么要使用 IDispose?在我看到的所有示例中,它已被用于访问某些文件和处理图片。在我看到的一些例子中:
public interface IDisposable
{
void Dispose();
}
我不知道我是否必须把它放在一些新的类中,我应该把它放在同一个类中,甚至不实现它。
然后我创建了使用超类节点的子类 NodeLong 和 Nodestring,我放置了一些新的属性以及 setter 和 getter。我也使用了打印方法。我也不懂泛型。
线性集合类:
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:Node。
我的指令说我必须在两个子类中使用 IClonable 方法,我不知道我应该如何使用它?在类 Node 中也使用 IDisposable,如何?我希望我能理解吗?
所以最后的问题是它应该如何看起来像我的类、子类、IDisposable 和 ICloneable?