gpt4 book ai didi

C# Getter setter

转载 作者:行者123 更新时间:2023-11-30 13:16:49 25 4
gpt4 key购买 nike

我正在做与分数相关的作业。我想防止用户为分母(“nenner”)和分子(“zähler”)输入小于 1 的数字。我尝试用 set 实现它,但它不起作用。如果分子/分母小于 1我希望将它们设置为 1。如有任何关于我代码错误的提示,我们将不胜感激。

namespace Aufgabenblatt2
{
class Bruch
{
private int zähler;
public int Zähler
{
get { return zähler; }
set
{
if (value < 1)
{
//Console.WriteLine("Keine negativen Brüche und Division durch 0 erlaubt! Wert wurde auf 1 gesetzt");
zähler = 1;
}
else
zähler = value;
}
}

private int nenner;
public int Nenner
{
get { return nenner; }
set
{
if (value < 1)
{
//Console.WriteLine("Keine negativen Brüche und Division durch 0 erlaubt! Wert wurde auf 1 gesetzt");
nenner = 1;
}
else
nenner = value;
}
}


public Bruch(int zähler, int nenner)
{
this.zähler = zähler;
this.nenner = nenner;
}

/// <summary>
/// addiert zum Bruch einen weiteren hinzu
/// </summary>
/// <param name="summand">Summand</param>
/// <returns>Summe</returns>
public Bruch Addiere(Bruch summand)
{
Bruch ergebnis = new Bruch(this.zähler * summand.nenner + summand.zähler * this.nenner, this.nenner * summand.nenner);
return ergebnis;
}

public override string ToString()
{
return String.Format("{0}/{1}", this.zähler, this.nenner);
}
}
class Program
{
static void Main(string[] args)
{
Console.Write("Eingabe erster Zähler:");
int zähler1 = Convert.ToInt32(Console.ReadLine()); //Read numerator value from console and save to int zähler
Console.Write("Eingabe erster Nenner:");
int nenner1 = Convert.ToInt32(Console.ReadLine()); //Read denominator value from console and save to int nenner

Bruch b1 = new Bruch(zähler1, nenner1);


Console.Write("Eingabe zweiter Zähler:");
int zähler2 = Convert.ToInt32(Console.ReadLine()); //Read second numerator
Console.Write("Eingabe zweiter Nenner:");
int nenner2 = Convert.ToInt32(Console.ReadLine()); //Read second denominator

Bruch b2 = new Bruch(zähler2, nenner2);

Console.WriteLine("{0} + {1} = {2}", b1, b2, b1.Addiere(b2)); //Print both fractions, compute and print sum on Console

Console.ReadLine();
}
}

最佳答案

你不使用你的二传手。在 Bruch b1 = new Bruch(zähler1, nenner1); 处,您在构造函数中设置了您的字段,而不是属性

更改构造函数以设置属性:

public Bruch(int zähler, int nenner)
{
Zähler = zähler;
Nenner = nenner;
}

您可以通过在 setter 处放置一个断点并查看它们从未被调用来捕获此问题,然后通过代码回溯到设置值的位置

关于C# Getter setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22561708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com