C#做的一切以下公/私像在C ++? [关闭](C# Make everything follo

2019-06-27 22:56发布

我最近开始学习C#,但我在C ++的一些背景。 我不知道我怎么会做这样的事情

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

    private:
       ....
    ... private member variables ....
       ....
}

我想在C#中这样做,但它不喜欢的“市民:...”和“私人:...”,使一切后,无论是公共或私人。

另外,我看到那里有此获取和在C#中设置的东西,所以你不需要做的事情在做一个私有成员变量,然后又做了函数返回该变量的方法是什么?

而我在这,要怎样才能在C#中的子类? 在C#中的新类获得不同的标签页中打开,所以我很困惑,我会怎么做。

Answer 1:

你不能让“块”的公共或私人在C#中,你会在C ++中,你必须能见度(和实现)添加到每个成员。 在C ++中,你通常做的;

public:
  memberA();
  memberB();
private:
  memberC();

...和实现成员在别处,而在C#中,你需要做的;

public  memberA() { ...implement your function here... }
public  memberB() { ...implement your function here... }
private memberC() { ...implement your function here... }

至于性能,把他们看成自动实现的setget ,您可以选择实现自己或让编译器实现它们的方法。 如果你想自己实现这些功能,你仍然需要外地来存储你的数据,如果你把它留给编译器,它也将产生领域。

继承的工作完全一样,它将如果你把东西放在同一个文件中(这可能甚至没有更大的C ++项目是一个好主意)。 只是继承像往常一样,只要你在同一个命名空间或有进口的,你可以无缝地继承了基类的命名空间;

using System.Collections;  // Where IEnumerable is defined

public class MyEnumerable : IEnumerable {  // Just inherit like it 
   ...                                     // was in the same file.
}


Answer 2:

1)在C#访问修饰符是从C ++中,你需要明确指定每类成员不同。

http://msdn.microsoft.com/en-us/library/wxh6fsc7(v=vs.71).aspx

2)获取,设置你提的参考C#属性:

class User
{
    private string userName;

    public string UserName
    {
        get { return this.userName; }
        set { this.userName = value; }
    }
}

请注意,您也可以使用自动实现的属性http://msdn.microsoft.com/en-us/library/bb384054.aspx

3)在C#子类是像这样做

class Manager : Employee 
{
    //implementation goes here as usual
}


Answer 3:

在C#中,你必须为每个方法或属性的访问符。 如果不指定需要的默认访问说明符。
对于类成员的默认访问说明符是私人和默认的东西一类外是内部

class MyClass{ //MyClass will be internal
     int MyProperty {get; set;} // MyProperty will be privare
}


Answer 4:

  1. 不,你不能。 在C#中,你必须指定访问的每个成员。

  2. 不,你不这样做,这就是所谓的Property

  3. 它写其他类

    类SomeClass的{

    }类亚类:SomeClass的{}



文章来源: C# Make everything following public / private like in C++? [closed]