如何使setter正确地编辑类成员



我正在尝试为私有成员年龄的公共属性制作一个setter。它的操作方式是,如果你试图输入的年龄小于零,程序应该将其设置为零,并给你一个基本信息。然而,这个setter会让任何负数从它身边溜走。如果你试图在构造函数中编辑它,setter甚至不会激活。但是,如果您制作年龄类的实例,而不是尝试编辑该实例类,则可以。然而,它会让小于零的数字通过,并发送消息"0";"可行";,这意味着它是一个可行的数字。这是年龄成员、属性、构造函数等所在的Person类。

namespace HopeThisWorks
{
class Person
{
private int age;
public int Age
{
get
{
return age;
}
set
{
if(age >= 0)
{
age = value;
System.Console.WriteLine("Viable");
}
else
{
age = 0;
System.Console.WriteLine("Not Viable");
}
}
}
public Person(int age)
{
this.age = age;
}
}
}

以下是主要方法:

using System;
namespace HopeThisWorks
{
class Program
{
static void Main(string[] args)
{
Person p1 = new Person(1);
p1.Age = -1;
}
}
}

任何帮助都将不胜感激。非常感谢。

以下是的工作内容

using System;
public class Program
{
public static void Main()
{
var p = new Person(-5);
}
}
class Person
{
private int _age;
public int Age
{
get {return _age;}
set
{
if (value >= 0)
{
_age = value;
System.Console.WriteLine("Viable");
}
else
{
_age = 0;
System.Console.WriteLine("Not Viable");
}
}
}
public Person(int age)
{
Age = age;
}
}

在这种情况下,结果将打印出Not Viable

马克评论道。

最新更新