广告
返回顶部
首页 > 资讯 > 精选 >C#中关键字get、set、value、partial、where和yield怎么用
  • 826
分享到

C#中关键字get、set、value、partial、where和yield怎么用

2023-06-17 23:06:05 826人浏览 八月长安
摘要

这篇文章主要介绍C#中关键字get、set、value、partial、where和yield怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!C#关键字——get、set、valueget 在属性或索引

这篇文章主要介绍C#中关键字get、set、value、partial、where和yield怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

C#关键字——get、set、value

get 在属性或索引器中定义“访问器”方法,以检索该属性或该索引器元素的值。

set 义属性或索引器中的“访问器”方法,用于设置属性或索引器元素的值。

value 隐式参数,用于设置访问器以及添加或移除事件处理程序。

// 简单示例  class Employee  {  private string _name;  public string Name      {  get { return this._name;  }  set { this._name = value; }      }  }

注意:

get、set“访问器”,在默认情况下具有相同的访问级别。但是有时鉴于对读写的考虑,通常可以限制set的访问级别。对属性或索引器使用访问修饰符受以下条件的制约:

不能对接口或显式接口成员实现使用访问器修饰符。

仅当属性或索引器同时具有 set 和 get 访问器时,才能使用访问器修饰符。这种情况下,只允许对其中一个访问器使用修饰符。

如果属性或索引器具有 override 修饰符,则访问器修饰符必须与重写的访问器的访问器(如果有的话)匹配。

访问器的可访问性级别必须比属性或索引器本身的可访问性级别具有更严格的限制。

C#关键字——partial

partial 分部类型定义允许将类、结构或接口的定义拆分到多个文件中。

[modifiers] partial type

modifiers是可选的。可以是abstract、new、override、static、virtual、extern,以及访问修饰符中的一个。

type 可以是类、结构和接口之一。

示例:

以下的部分类在编译时,将会合并,包括它的方法、类型特性等等。 

namespace Hunts.KeyWords  {      [System.Serializable]      partial class Test      {          void Test1() { }      }      [Conditional("DEBUG")]      partial class Test      {          void Test2() { }      }  }

类相当于:

namespace Hunts.Keywords  {      [System.Serializable]      [Conditional("DEBUG")]      class Test      {          void Test1() { }          void Test2() { }      }

关于部分(类、接口、结构)的详细使用,可以参阅MSDN Library中的部分类。

C#关键字——where

where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量。

之所以使用类型约束是因为如果要检查泛型列表中的某个项以确定它是否有效,或者将它与其他某个项进行比较,则编译器必须在一定程度上保证它需要调用的运算符或方法将受到客户端代码可能指定的任何类型参数的支持。这种保证是通过对泛型类定义应用一个或多个约束获得的。

// 句法  public class MyGenericClass< T> where T:something

something可以是:结构、类、new()、< 基类名>或< 接口名称>。

可以同时具有1中的多个约束,且约束自身也可以是泛型类型。

也可以将约束作用于泛型方法或委托。

要更深入的了解可以参阅MSDN Library中的“泛型编程”以及“类型参数的约束”这些内容。

示例: 

 // keywords_where.cs      using System;   using System.Collections;      struct MyStruct   {       //...   }   interface IMyInterface  {      //...  }   class MyGenericClass< T1,T2>      where T1: IEnumerable, IMyInterface      where T2: MyStruct, new()  {      public void MyMethod(T1 t1, T2 t2)      {          //...      }  }

C#关键字——yield

yield 在迭代器块中用于向枚举数对象提供值或发出迭代结束信号。 

// expression 进行计算并以枚举数对象值的形式返回。expression 必须可以隐式转换为迭代器的 yield 类型。  yield return expression;  yield break;

示例:

// keywords_yield.cs  using System;  using System.Collections;   namespace Hunts.Keywords  {      public class Employee      {          private string _name;         private int _id;          public string Name         {             get { return this._name; }             set { this._name = value; }         }          public int ID         {             get { return this._id; }             set { this._id = value; }         }          // 为给定数组中的人名进行编号         public static IEnumerable SetIDs(string[] names)         {             int counter = 0;             Employee result = new Employee();             while (counter++ <  names.Length)             {                 result._id = counter;                 result._name = names[counter - 1];                 yield return result;             }         }     }      class EmployeeList     {         static void Main()         {             string[] names = { "Jones", "Carl", "Dennis", "Evan", "HuGo", "Ivan" };              // 显示编号操作的结果             foreach (Employee e in Employee.SetIDs(names))             {                 Console.WriteLine("ID:{0} Name:{1}", e.ID,e.Name);             }              Console.Read();         }     }

注意:

yield 语句只能出现在 iterator 块中,该块可用作方法、运算符或访问器的体。这类方法、运算符或访问器的体受以下约束的控制:

不允许不安全块。

方法、运算符或访问器的参数不能是 ref 或 out。

yield 语句不能出现在匿名方法中。

当和 expression 一起使用时,yield return 语句不能出现在 catch 块中或含有一个或多个 catch 子句的 try 块中。

以上是“C#中关键字get、set、value、partial、where和yield怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: C#中关键字get、set、value、partial、where和yield怎么用

本文链接: https://www.lsjlt.com/news/294231.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#中关键字get、set、value、partial、where和yield怎么用
    这篇文章主要介绍C#中关键字get、set、value、partial、where和yield怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!C#关键字——get、set、valueget 在属性或索引...
    99+
    2023-06-17
  • C++中引用和const关键字怎么用
    今天小编给大家分享一下C++中引用和const关键字怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。引用下面的写法定义了...
    99+
    2023-06-29
  • c++中的volatile和variant关键字怎么用
    这篇文章主要讲解了“c++中的volatile和variant关键字怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c++中的volatile和variant关键字怎么用”吧!一、两个长...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作