2011-08-15 8 views
0

私は次のようなクラスをしました:静的メソッドのヘルプが必要な

namespace BLL { 
public partial class SomeClass 
{ 

    public void Save(string xmlFile){ 
    //Body 
    } 
    public static Person Parse(string xml) 
    { 
     //Body 
    } 
    } 
} 

問題: 私は工assのインスタンスを作成することにより、Saveメソッドを呼び出すことができます。しかし、SomeClassのインスタンスからParseメソッドにアクセスすることはできません。私もSomeClassを試しました。 BLL.SomeClass.Parseを実行すると、そのParaseメソッドにのみアクセスできます。

上記のシナリオで何が起こっているのか教えてください。 namaspace.class.methodnameから静的メソッドにアクセスすることのみ可能ですか?

ありがとうございました。

+0

から保存することはできません。SomeClass.Parse()は動作するはずです。また、そのクラス内から呼び出す場合は 'Parse()'も有効です。それを呼び出そうとしているコードを表示できますか? –

+1

'Parse()'は静的メソッドです。 'ClassName.MethodName()'を使って静的メソッドを呼び出します。あなたの場合、 'SomeClass.Parse(" ... ")'。もちろん、名前空間が有効であると仮定します。 –

答えて

0

あなたが名前空間を使用していると仮定すると、SomeClass.Parseを実行できるはずです。それ以外の場合は、BLL.SomeClass.Parseを実行する必要があります。インスタンスオブジェクトから静的関数を呼び出すことはできません。

0

構文解析を呼び出すには、SomeClass.Parse( "")という名前でインスタンスを呼び出す必要があります。明示的にネームスペースの名前を付けたくない場合は、単に「using BLL;」を追加してください。 今後のレディング:http://msdn.microsoft.com/en-us/library/aa645629(v=vs.71).aspx

0

クラスのインスタンスに対して静的メソッドを呼び出すことはできません。クラス名(BLL.SomeClass.Parseなど)を使用する必要があります。つまり、インスタンスからの保存(instanceOfSomeClass.Save(...)など)

関連する問題