2011-12-22 16 views
0

私は少し混乱しています。Cで変数を初期化する#

私は、次のコードを持っている:これは正常に動作します

public class MyClass 
{ 
    public string DoSomething(string TheString) 
    { 
    int TheID; 
    string TheString = ""; 
    } 
} 

を。それはコンパイルする。しかし、なぜこれは機能しませんか?

public class MyClass 
{ 
    public string DoSomething(string TheString) 
    { 
    private int TheID {get;set;} 
    private string TheString {get;set;} 
    } 
} 

これらの変数を非公開にしたいと考えています。私は何を変更する必要がありますか?

+0

プロパティはメソッドの一部ではありません。それは常にクラスの一部です。 – Zenwalker

答えて

5

プライベート変数はクラスレベルでのみ有効です。

public class MyClass { 
    private int TheID {get;set;} 
    private string TheString {get;set;} 

    public string DoSomething(string TheString) { 

    } 
    } 

メソッド内で定義された変数は、スコープ内にローカルであり、彼らは唯一のそのメソッド内に存在します。メソッドの外部にアクセスできないローカル変数をプライベートとして宣言するのは意味がありません。

+0

ちょうど質問:プライベートメンバーを使用するのではなくプライベートプロパティを使用するのはなぜですか? – Florian

+0

@Florian、それは彼の質問で与えられたフレンチの例だった。通常は、プライベートプロパティの代わりにプライベートフィールドになります。 – shf301

2

これらはメソッド内でスコープされています。メソッドの外側にはアクセスできません。あなたはそれらを私的であると考えることができます。

+0

ありがとう、彼らはまだプライベートです。 – frenchie