我主要是一名C++程序员,并且在几年内没有触及过c#(所以,如果我问的问题可能是我的脑屁),请原谅我.
背景信息: 我正在编写一个文件组织实用程序(只是为了好玩,并帮助清理我的计算机上的重复项).我已经能够为文件和文件执行MD5校验和,并在各个子目录中查找重复文件,有时使用相同的文件名,有时不使用(但总是使用相同的文件类型).我最初是通过在"MainFrom"的代码中使用文件路径字符串和Winform对象,Arraylist,Arrays作为概念证明来完成的.代码真的很难看,我已经很困惑地看着它,所以它绝对不可维护.
所以我认为一个更优雅和明智的设计将存储为一个对象,它将有简单的东西,如文件路径,文件名,MD5,文件类型等等(是的,我知道FILE).然后我想它是否有意义,如果它引用了"重复","相似"的其他对象实例.我正在寻找创建一个指针数组,它是指向重复对象的对象的一部分.这样,在运行时我可以通过所有重复,找出他们的属性等.
我计划稍后从这个类继承特定的文件类型,如mp3或jpg文件,我可以比较内容(例如:我可以确定哪些图片可能只是彼此重新调整大小的版本,并让它们指向对方).但是C#没有指针.我在看代表,但话又说回来,那不是我想要的.
我的困境: C#在托管代码中没有指针(我不想使用非托管部分,除非我绝对必须).
我还想过创建类似arraylist的东西,并在运行时传入"对象".但这不会造成重复吗?它不是真正引用新对象的吗?
我非常感谢那些已经将C++转换为C#过渡的人的建议.如果我在这里完全接近设计错误,请随时告诉我.(我假设因为它们都是面向对象的,所以这样的设计可以在两个世界中起作用).
我非常感谢对其他可以提供帮助的资源的引用(因为我不是第一个尝试用C#编写代码的c ++编码器).提前致谢!