2

私の問題の簡単な例を挙げましょう。エラーを理解できないようです:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using NetApp.Manage;

namespace Toaster.Library
{
    class NetappConnection
    {
        private string Hostname     {get; set;}
        private int ApiMajor        {get; set;}
        private int ApiMinor        {get; set;}
        private string Username     {get; set;}
        private string Password     {get; set;}

        private NaServer NetappServer {get; set;}

        public void NetappConnection(string Hostname, int ApiMajor, int ApiMinor,     string Username, string Password)
        {
            this.Hostname = Hostname;
            this.ApiMajor = ApiMajor;
            this.ApiMinor = ApiMinor;
            this.Username = Username;
            this.Password = Password;

            this.ConnectToNetapp();
        }

        private void ConnectToNetapp()
        {
            NaServer s = new NaServer(this.Hostname, this.ApiMajor, this.ApiMinor);
            s.ServerType = NaServer.SERVER_TYPE.FILER;
            s.TransportType = NaServer.TRANSPORT_TYPE.HTTP;
            s.Port = 80;
            s.Style = NaServer.AUTH_STYLE.LOGIN_PASSWORD;
            s.SetAdminUser(this.Username, this.Password);

            this.NetappServer = s; <<-- Error: Ambiguity between 'Toaster.Library.NetappConnection.NetappServer' and 'Toaster.Library.NetappConnection.NetappServer()'
        }

        public NaServer NetappServer()
        {
            return this.NetappServer;
        }
    }
}

私はあなたに正直に言うとC#の初心者です。しかし、なぜこれが不可能なのか理解できません。oからthis.Variableへの参照を渡すためですか?

これの目標は、NaServerオブジェクトを再利用できるようにすることです。

4

2 に答える 2

2
private NaServer NetappServer {get; set;}

public NaServer NetappServer()

同じ名前を持っている、1つを変更します。

于 2012-09-22T22:51:24.797 に答える
0

プロパティにはゲッターやセッターがありget; set;ます。変数はそうではありません。キーワードclassは小文字です(CodesInChaosによる)。フィールド(または必要に応じてクラスメンバー変数)は、多くの場合、先頭にアンダースコアを付けて_camelCaseを付けます。つまり、最初の文字は小文字で、後続の部分は大文字で始まります。

class MyClass 
{
   private SomeObject _variable;

   public void SomeMethode()
   {
      _variable = new SomeObject();
   }
}

Visual StudioのC#エディターとC#コンパイラーは、何が間違っているのかについての非常に良いヒントを提供します。それらを考慮に入れてください!

于 2012-09-22T22:52:34.507 に答える