繁体   English   中英

如何在C#中访问私有成员变量?

[英]How to access private member variables in C#?

我试图访问成员变量名称(将其设置为私有成员变量)以显示为输出。 请不要担心为什么我将成员变量Name设置为private。 仅用于练习目的。

基本上,我的输出是在外壳上显示一个名称。 要么

我叫苏拉

要么

我叫Xehanort

现在代码显示

我叫[空白]

我想知道两种方法。 第一个是通过用户输入,第二个是当字符名称存储在程序变量中时。 现在,我知道两种方法都可以做到,但是那是当我的成员变量是公共的,而不是私有的。 我想私下里做,但我很困惑。

到目前为止,这是我的代码。 第一个是Character类...

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

namespace CSharp_Practice
{
    class Character
    {
        private string Name;
        private int Age;
        private char Gender;
        private float Height { get; set; }
        private float Weight { get; set; }
        private string Nationality { get; set; }
        private string Appearance { get; set; }


    //SET AND GET NAME
        public void setName(string name)
        {
            this.Name = name;
        }

        public string getName()
        {
            return Name;
        }

    //SET AND GET AGE
        public void setAge(int age)
        {
            this.Age = age;
        }

        public int getAge()
        {
            return Age;
        }
    }

}

...第二个是主程序

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

namespace CSharp_Practice
{
    class Program
    {
        static void Main(string[] args)
        {
            Character Hero = new Character();
            Character Villain = new Character();


            //List of Heroes
            Hero.getName();

            //           Hero.Name = "Sora";
            //           Hero.Age = 19;

            //        Villain.Name = "Xehanort";
            //        Villain.Age = 79;

            Console.WriteLine("My name is " + Hero.getName());
        }
    }
}

请让我知道我该怎么做,或者如果无法实现,请告诉我为什么。 我很感激。

如果您具有要设置的名称的string值,则应该能够使用Hero.setName(value)而不是Hero.Name = value

这适用于控制台输入和硬编码变量。

暂无
暂无

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

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