C#如何在C++中使公共/私有一切?

use*_*752 8 c# private public subclass

我最近开始学习C#,但我有一些C++的背景知识.我想知道我会怎样做

class employee
{
    public:
       ....
  ... methods ...
       ....

    private:
       ....
    ... private member variables ....
       ....
}
Run Code Online (Sandbox Code Playgroud)

我尝试在C#中这样做,但它不喜欢"public:..."和"private:..."来制作公共或私人之后的所有内容.

另外,我已经看到了这个在C#中获取和设置的东西,所以你不需要做一个私有成员变量的方式,然后创建一个函数来返回该变量?

虽然我在这,但是如何在C#中创建子类?在C#中,新类在不同的选项卡中打开,所以我对如何操作感到困惑.

Joa*_*son 16

你不能像在C++中那样在C#中创建"块"公共或私有,你必须为每个成员添加可见性(和实现).在C++中,你通常会这样做;

public:
  memberA();
  memberB();
private:
  memberC();
Run Code Online (Sandbox Code Playgroud)

...并在其他地方实施您的成员,而在C#中,您需要这样做;

public  memberA() { ...implement your function here... }
public  memberB() { ...implement your function here... }
private memberC() { ...implement your function here... }
Run Code Online (Sandbox Code Playgroud)

至于属性,请将它们视为自动实现set,get以及您可以选择自己实现或让编译器实现它们的方法.如果你想自己实现它们,你仍然需要字段来存储你的数据,如果你把它留给编译器,它也会生成字段.

继承的工作方式与将事物放在同一个文件中的情况完全相同(这对于更大的C++项目来说可能不是一个好主意).像往常一样继承,只要你在同一个命名空间或导入基类的命名空间,你就可以无缝地继承;

using System.Collections;  // Where IEnumerable is defined

public class MyEnumerable : IEnumerable {  // Just inherit like it 
   ...                                     // was in the same file.
}
Run Code Online (Sandbox Code Playgroud)

  • 尽管问题"不是一个真正的问题",我很高兴你回答了这个问题.我一直在看C++代码,并没有意识到你不能在C#中进行块设置.给我节省了很多时间谷歌搜索! (3认同)