class Program { static void Main(string[] args) { try { Student student = new Student(); student.Name = "testbshxbxsssx"; Console.WriteLine(student.Name); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } class Student { private string name; public string Name { get { return name; } set { if (name.Length > 3) name = value; else throw new Exception("名字不和规定!"); } } }这段代码为什么报错
时间: 2024-02-10 22:12:07 浏览: 98
Javaprogram01:Java学习
这段代码报错是因为在属性 `Name` 的 `set` 方法中,如果输入的 `value` 长度小于等于 3,会抛出一个异常,但是实际上 `name` 还没有被赋值,所以应该将判断条件改为 `if (value.Length > 3)`,即:
```
public string Name
{
get { return name; }
set {
if (value.Length > 3)
name = value;
else
throw new Exception("名字不符合规定!");
}
}
```
这样就可以正确地设置 `name` 的值并且不会抛出异常了。
阅读全文