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

时间:2016-10-29 02:32:00

标签: c# variables private member

我正在尝试访问成员变量Name,我将其设置为私有成员变量,以显示为输出。请不要担心为什么我将成员变量Name设置为私有。它仅用于练习目的。

基本上我的输出是在shell上显示一个名字。

  

我的名字是索拉

  

我的名字是Xehanort

现在代码显示

  

我的名字是[BLANK]

我想知道这两种方法。第一个是通过用户输入,第二个是字符的名称存储在程序变量中。 现在我知道如何以两种方式做到这一点,但那时我的成员变量是公开的,但不是私有的。我想私下这样做,但我很难过。

到目前为止,这些是我的代码。第一个是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());
        }
    }
}

请让我知道如何做到这一点,或者如果不可能,请告诉我原因。我很感激。

1 个答案:

答案 0 :(得分:1)

如果您的string值包含您要设置的名称,则应该可以使用Hero.setName(value)而不是Hero.Name = value

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