C# Get方法

          string strURL = "https://www.sojson.com/open/api/weather/json.shtml?city=北京";
            System.Net.HttpWebRequest request;
            // 创建一个HTTP请求
            request = (System.Net.HttpWebRequest)WebRequest.Create(strURL);
            //request.Method="get";
            System.Net.HttpWebResponse response;
           // response = (System.Net.HttpWebResponse)request.GetResponse();
            try
            {
                response = (HttpWebResponse)request.GetResponse();
            }
            catch (WebException ex)
            {
                response = (HttpWebResponse)ex.Response;
            }
     
            System.IO.StreamReader myreader = new System.IO.StreamReader(response.GetResponseStream(), Encoding.UTF8);
            string responseText = myreader.ReadToEnd();
            myreader.Close();

### C# 中 `get` 和 `set` 访问器的使用 #### 定义和作用 在面向对象编程中,封装是一个重要的原则。为了更好地控制对类成员的访问并隐藏内部数据结构,在 C# 中可以通过定义带有 `get` 和 `set` 访问器的属性来实现这一点[^1]。 这些访问器允许外部代码读取(`get`)或修改(`set`)私有字段的内容,而无需直接操作该字段本身。这不仅提高了安全性还增强了灵活性,因为可以在获取或设置值时加入额外逻辑处理,比如验证输入的有效性[^2]。 #### 基本语法形式 最简单的声明方式如下所示: ```csharp public class Example { private int myField; // 自动实现的属性 public int MyProperty { get; set; } } ``` 对于更复杂的场景,则可能需要自定义 getter 或 setter 的行为: ```csharp public class Person { private string _name; private int _age; /// <summary> /// 名字属性, 只能被赋值不能返回其他计算后的结果. /// </summary> public string Name { get => _name; set => _name = value ?? throw new ArgumentNullException(nameof(value)); } /// <summary> /// 年龄属性, 需要确保年龄是非负数. /// </summary> public int Age { get => _age; set { if (value >= 0) { _age = value; } else { throw new ArgumentOutOfRangeException(nameof(value), "Age cannot be negative."); } } } } ``` 上述示例展示了如何利用表达式体定义简洁明了的方法[^3]。当只需要简单地存取底层存储的数据而不涉及任何业务逻辑的时候,还可以进一步简化为自动实现的形式,即仅保留 `{ get; set; }` 而省去显式的备份字段。 #### 自动生成属性 如果不需要在 `getter/setter` 方法内执行特殊逻辑的话,那么可以直接采用自动化的方式创建它们: ```csharp public class SimpleClass { // 这里会由编译器自动生成对应的私有字段用于保存实际数值 public double Value { get; set; } } ``` 这种方式减少了样板代码的数量,并使得源码更加易读易于维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值