在C++的世界中:
引用就用&
常量修饰就用const
所以我很喜欢这个样写
class CMyClass{.....};
void Test(const CMyClass & obj);//这Test不允许对obj做任何修改,但又用到引用的高性能
但C#里好像不可以这样class CMyClass{.....}
void Test(const ref CMyClass obj){}//出错了只能
void Test(ref CMyClass obj);或void Test(const CMyClass obj);
引用就用&
常量修饰就用const
所以我很喜欢这个样写
class CMyClass{.....};
void Test(const CMyClass & obj);//这Test不允许对obj做任何修改,但又用到引用的高性能
但C#里好像不可以这样class CMyClass{.....}
void Test(const ref CMyClass obj){}//出错了只能
void Test(ref CMyClass obj);或void Test(const CMyClass obj);
const -> #define
readonly -> const
建议把stuct换成class
问题是这样,我传入的类型是DateTime,它其身就是struct,没法改成class
如果需要传递出去一个值,而不希望被改变
值类型,直接参数传递就是const
不同的开发语言,有细节不同的,不要套用c++的方式来这里用。
c#中,实现你的方法大多是调用Clone制作一个副本,然后传递副本的引用。当然不可能像传递const &那么效率和逻辑双重兼顾。