You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Codecademy C#练习Biome属性无法接受Tropical值问题求助

错误原因
  • 你在Biome属性的set块中错误调用了属性本身的值做判断和赋值:C#中属性setter接收的用户输入值需要用内置关键字value获取,你现有代码里写的Biome == "Tropical"实际是读取当前Biome属性的现有值,初始状态下biome字段为空,判断永远不通过,自然无法正确赋值。
  • 非法值处理逻辑不符合要求:题目要求传入非法值时biome设为"Unknown",你的代码写的是赋值为null,不符合规则。
  • 另外Name、Trees两个属性的setter也存在同样的问题,没有使用value,给这两个属性赋值也不会生效。
修正后的Forest类代码
class Forest
{
    public string name;
    public int trees;
    public int age;
    public string biome;
    
    public string Name
    {
        get { return name; }
        set
        {
            // 用value接收用户传入的赋值
            name = value;
        }
    }
    public int Trees
    {
        get { return trees; }
        set
        {
            trees = value;
        }
    }

    public string Biome{
        get { return biome; }
        set {
            // 判断传入的value是否是合法值
            if (value == "Temperate" ||
                value == "Tropical" ||
                value == "Boreal"){
                biome = value;
            }
            else 
            {
                // 非法值设为Unknown而非null
                biome = "Unknown";
            }
        }
    }
}

Program类无需修改,运行后即可正常输出Congo和Tropical,符合题目要求。

内容的提问来源于stack exchange,提问作者KeesOG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:33:01