繁体   English   中英

我无法访问班级财产

[英]I can't access my class property

我有这个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类库的第二个项目中)

您有两个同名的类。 尝试

ftp = new Handler.FTPClient.FTP() 

以确保您实例化正确的课程。

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

 Handler.FTPClient.FTP ftp;

正是由于这个原因,对于不同的类,应避免使用相同的名称。 由于您的FTP类是从Form继承的,因此我认为它是一个窗口...因此,将其重构为“ FTPWindow”,问题就更少了,代码也更易于阅读。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM