Второй метод не может использовать переменную свойства - PullRequest
0 голосов
/ 16 октября 2018

Я новичок в этом, так что у меня может быть фундаментальное недоразумение, и я надеюсь, что кто-нибудь сможет мне это выяснить.Я искал похожие темы, но не нашел четкого ответа.

Код:

namespace ConsoleApp37
{
    class Propertything
    {
        public int number1 = 5;
        public int test
        {
            get { return number1; }
            set { number1 = value; }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Propertything x = new Propertything();
            Console.WriteLine("{0}", x.number1);
            x.number1 = 25;
            Console.WriteLine("{0}", x.number1);
            Console.ReadKey();
        }
    }
    class SecondMethod
    {
        public void Method2(string[] args)
        {
            SecondMethod y = new SecondMethod();
            Console.WriteLine("{0}", y.number1);
            y.number1 = 33;
            Console.WriteLine("{0}", y.number1);
            Console.ReadKey();
        }
    }
}

Проблема в том, что я получаю ошибку CS1061 из-за этих строк (число 1):

Console.WriteLine("{0}", y.number1);
y.number1 = 33;
Console.WriteLine("{0}", y.number1);

Мой мыслительный процесс состоял в том, что свойство (первый класс) используется для случаев, когда несколько классов используют одни и те же переменные.Я ожидал, что результат скажет: 5 25 5 33.

Может кто-нибудь объяснить, почему второй класс (class SecondMethod) не может использовать переменную number1, как класс Program?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Поскольку свойство number1 находится в Propertything, а не в SecondMethod.

Вы создаете

SecondMethod y = new SecondMethod();
Console.WriteLine("{0}", y.number1);

Не, как в основном методе,

Propertything x = new Propertything();
Console.WriteLine("{0}", x.number1);

Вы можете использовать Propertything в Method2 или добавить свойство

public int number1;

в SecondMethod

0 голосов
/ 16 октября 2018

Это потому, что ваш класс SecondMethod не содержит переменную или свойство с именем number1

class SecondMethod
{
    public void Method2(string[] args)
    {
        SecondMethod y = new SecondMethod();
        Console.WriteLine("{0}", y.number1);
        y.number1 = 33;
        Console.WriteLine("{0}", y.number1);
        Console.ReadKey();
    }
}

Он находится внутри вашего другого класса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...