我了解C ++,但我是C#编程的新手,我有一些问题:
我知道在C#中没有“const正确性”,那么如何替换呢?如果你调用方法f(Stack stk)
,你如何确保f()
不会改变我的堆栈?
在c ++ operator=
中,copy ctor
和dtor
会自动在每个班级中创建,C#也会自动创建吗?
我知道在C#中,如果我们有一个方法f(Stack stk)
,它就像c ++中的f(Stack& stk)
一样,
那么如何按值发送对象参数?
在C#中,我们还创建了两个文件:.h
用于声明,.c
用于实现?
(谢谢!)
答案 0 :(得分:3)
根本没有任意类型的常量。只有单个字段可以是readonly
,而不是任意变量或类型。 “常量”(const
)需要是编译时常量,如pi。
不适用于class
类型,因为它们无法直接分配。 class
类型总是通过指针处理,而不是直接操纵对象。只有struct
可以直接操作,并且它们总是通过内存副本分配,因此它们没有赋值运算符或析构函数。
包含类“object”类型的变量总是指针到对象,所以要复制类类型的对象,他们需要实现ICloneable
,你就是应该在对象上调用.Clone()
并传递它。要复制struct对象,您可以正常传递它们。
不,元数据存储在程序集本身中。