2015-06-02 60 views
1

關於C#Java封裝和訪問者的簡短問題。 在C#中的這段代碼是否與下面的Java中的代碼相同?封裝,訪問者C#vs Java

C#

class MyClass{ 

    public string var1 {get; private set;} 
    public int var2 {get; private set;} 

    public MyClass(string aString, int anInt){ 
     this.var1= aString; 
     this.var2=anInt; 
    } 

} 

的Java

//Java 
class MyClass{ 

    private String var1; 
    private int var2; 

    public MyClass(String aString, int anInt){ 
     this.var1= aString; 
     this.var2=anInt; 
    } 

    public String getVar1(){ 
     return this.var1; 
    } 

    public void setVar1(int anInt){ 
     this.var1 = anInt; 
    } 

    public int getVar2(){ 
     return this.var2; 
    } 

    public void setVar2(String aString){ 
     this.var2 = aString; 
    } 

} 

我是從java世界的到來,不知道的訪問中C#縮短。

+1

'無效int'和'無效字符串'不是有效的返回類型... –

+0

;)編寫代碼時,有趣的壞習慣IDE,謝謝糾正 – JimC

回答

3

不,在C#代碼中你有私人設置者 - 在你的Java代碼中它們是公開的。

的C#等同於Java代碼將是:

public string Var1 { get; set; } 
public int Var2 { get; set; } 

(我已經改變了名稱,以遵循.NET命名約定 - 屬性PascalCased。)

+0

好吧我看到了,有點傷痕累累的聲明儘管設置了公開變量 – JimC

+0

@JimC:你沒有聲明一個public *變量* - 只是一個public *屬性*。支持領域仍然是私人的。 –

0

你可能不應該有要麼是誠實的公開場合。

有一個公共增變器有什麼好處?我很少看到有一個公開的增變器的理由。

+0

C#版本沒有公共增變器。 – Mephy

+0

我知道。我只是做一般性發言。 Java一個人,如果他讓它得到;組;在C#中匹配,那麼他們都將公開,可能不應該。 – Exziled