用c#写一个ticket类,有一个距离属性(本属性只读,在构建方法中赋值),不能为负数,有一个价格属性,价格属性为只读,并且根据距离计算价格(1元/公里):0~100km,票价不打折;101~200km,总额打9.5折;201~300km。总额打9折;300km以上,总额打8折
时间: 2024-09-29 20:14:20 浏览: 20
在C#中,你可以创建一个名为Ticket的类,包含距离和价格两个只读属性,以及一个构造函数来设置距离并计算价格。以下是类的示例代码:
```csharp
public class Ticket
{
private double _distance;
private double _price;
// 构造函数,限制距离为非负,并根据距离范围计算价格
public Ticket(double distance)
{
if (distance < 0)
throw new ArgumentException("Distance cannot be negative.");
_distance = distance;
switch (true)
{
case _distance <= 100:
_price = _distance; // 0-100 km, no discount
break;
case _distance > 100 && _distance <= 200:
_price = _distance * 0.95; // 101-200 km, 95% discount
break;
case _distance > 200 && _distance <= 300:
_price = _distance * 0.9; // 201-300 km, 90% discount
break;
default:
_price = _distance * 0.8; // 300+ km, 80% discount
break;
}
}
// 获取只读的距离属性
public double Distance => _distance;
// 获取只读的价格属性(访问受限制)
public double Price => _price;
// 为了防止直接修改价格属性,这里仅提供获取方法,不允许赋值
public double GetPrice()
{
return Price;
}
}
```
阅读全文