C# Свойство не возвращает значение, которое я изменяю при установленном методе доступа - PullRequest
1 голос
/ 23 марта 2020

Свойство:

public double TotalFee
{ 
    get { return totalfee; }
    set
    {
        if ((course == "C#") || (course == "c#")) { totalfee = 2000; }
        else { totalfee = 3000; }
    }
} 

Я создал переменную с именем totalfee: 'private double totalfee;' , из которых я не назначил никакого значения в начале, и когда я вызываю свойство в моей программе, возвращается 0. Даже если я даю предварительное значение для totalfee , оно возвращает только это значение, не переходя в none из условий, которые я сделал. Идея состоит в том, что когда пользователь вводит курс: c#, он возвращает значение для totalfee 2000, а если он вводит другой курс, он возвращает значение для totalfee 3000.: /

Ответы [ 3 ]

4 голосов
/ 23 марта 2020

Похоже, вам не нужно личное поле вообще. Вы можете просто поместить все логи c в геттер:

public double TotalFee
{ 
    get
    {
        if ((course == "C#") || (course == "c#")) { return 2000; }
        else { return 3000; }
    }
} 
0 голосов
/ 23 марта 2020

Когда вы впервые вызываете double без предварительного присвоения (установки) значения, его значение по умолчанию равно нулю. Это причина, почему вы видите это значение при запуске вашего кода. Ваша программа будет проходить через ваши «установленные» логи c, если вы устанавливаете значение свойства, например, myclass.myproperty = 1.

. В вашем случае решением будет просто включить вашу логику c метод get, поэтому при доступе к TotalFee логика c активируется.

0 голосов
/ 23 марта 2020

Если TotalFee не предназначен для непосредственного изменения, код, в котором вы устанавливаете totalFee, должен быть в установщике курса, а не в установщике TotalFee. Например:

public double TotalFee
{ 
    get { return totalfee; }
}

public string Course
{
    get { return course; }
    set
    {
        course = value;
        if ((course == "C#") || (course == "c#")) { totalfee = 2000; }
        else { totalfee = 3000; }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...