我无法访问我的类属性

时间:2015-12-07 14:52:57

标签: c#

我有这个C#类:

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

namespace Handler.FTPClient
{
    public class FTP
    {
        private static string _message = "This is a message";

        public static String message
        {
            get { return _message; }
            set { _message = value; }
        }

        public FTP()
        {
        }

        public static String GetMessage()
        {
            return message;
        }
    }
}

我试图用它来称呼它:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Handler.FTPClient;

namespace swift_ftp
{
    public partial class FTP : Form
    {
        FTP ftp;

        public FTP()
        {
            InitializeComponent();
        }

        private void btnClose_Click(object sender, EventArgs e)
        {

            Application.Exit();
        }

        private void FTP_Load(object sender, EventArgs e)
        {
            ftp = new FTP();
            MessageBox.Show(FTP.message);
        }
    }
}

但出于某种原因,我无法打电话给酒店,有没有我没做过的事情?我也没有静态地完成了这个并得到了相同的结果-_-

对于这个愚蠢而基本的问题感到抱歉,自从我做完C#以来,它已经有一段时间了!

(我已将ref添加到第二个项目,这是ftp类库所在的位置)

2 个答案:

答案 0 :(得分:5)

您有两个同名的课程。尝试

ftp = new Handler.FTPClient.FTP() 

确保您实例化正确的班级。

不要忘记类本身中的变量:

 Handler.FTPClient.FTP ftp;

出于这个原因,您应该为不同的类避免使用相同的名称。由于你的FTP类继承自Form,我认为它是一个窗口......所以将它重构为“FTPWindow”,你的问题就少了,而且代码更容易阅读。

答案 1 :(得分:2)

部分类只能在同一个程序集和相同的命名空间中使用。您的(部分)类位于不同的名称空间中。

请参阅https://msdn.microsoft.com/en-us/library/wa80x488.aspx