C#关键字

C# 关键字大全 C# 关键字和上下文关键字 - C# reference | Microsoft LearnC# 关键字:查找使用 C# 语言定义的预定义关键字和上下文关键字的参考资料。 阅读详情

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

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

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

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

  1. // 简单示例  
  2. class Employee  
  3. {  
  4. private string _name;  
  5. public string Name  
  6.     {  
  7. get { return this._name;  }  
  8. set { this._name = value; }  
  9.     }  

注意:

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

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

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

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

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

C#关键字——partial

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

[modifiers] partial type

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

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

示例:

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

  1. namespace Hunts.Keywords  
  2. {  
  3.     [System.Serializable]  
  4.     partial class Test  
  5.     {  
  6.         void Test1() { }  
  7.     }  
  8.     [Conditional("DEBUG")]  
  9.     partial class Test  
  10.     {  
  11.         void Test2() { }  
  12.     }  

类相当于:

  1. namespace Hunts.Keywords  
  2. {  
  3.     [System.Serializable]  
  4.     [Conditional("DEBUG")]  
  5.     class Test  
  6.     {  
  7.         void Test1() { }  
  8.         void Test2() { }  
  9.     }  

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

C#关键字——where

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

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

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

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

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

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

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

示例: 

  1.  // keywords_where.cs  
  2.    
  3.  using System;  
  4.  using System.Collections;  
  5.    
  6.  struct MyStruct  
  7.  {  
  8.      //...  
  9.  }  
  10.  
  11. interface IMyInterface  
  12. {  
  13.     //...  
  14. }  
  15.  
  16. class MyGenericClass< T1,T2>  
  17.     where T1: IEnumerable, IMyInterface  
  18.     where T2: MyStruct, new()  
  19. {  
  20.     public void MyMethod(T1 t1, T2 t2)  
  21.     {  
  22.         //...  
  23.     }  

C#关键字——yield

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

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

示例:

  1. // keywords_yield.cs  
  2. using System;  
  3. using System.Collections;  
  4.  
  5. namespace Hunts.Keywords  
  6. {  
  7.     public class Employee  
  8.     {  
  9.         private string _name;  
  10.        private int _id;  
  11.  
  12.        public string Name  
  13.        {  
  14.            get { return this._name; }  
  15.            set { this._name = value; }  
  16.        }  
  17.  
  18.        public int ID  
  19.        {  
  20.            get { return this._id; }  
  21.            set { this._id = value; }  
  22.        }  
  23.  
  24.        // 为给定数组中的人名进行编号  
  25.        public static IEnumerable SetIDs(string[] names)  
  26.        {  
  27.            int counter = 0;  
  28.            Employee result = new Employee();  
  29.            while (counter++ <  names.Length)  
  30.            {  
  31.                result._id = counter;  
  32.                result._name = names[counter - 1];  
  33.                yield return result;  
  34.            }  
  35.        }  
  36.    }  
  37.  
  38.    class EmployeeList  
  39.    {  
  40.        static void Main()  
  41.        {  
  42.            string[] names = { "Jones""Carl""Dennis""Evan""Hugo""Ivan" };  
  43.  
  44.            // 显示编号操作的结果  
  45.            foreach (Employee e in Employee.SetIDs(names))  
  46.            {  
  47.                Console.WriteLine("ID:{0} Name:{1}", e.ID,e.Name);  
  48.            }  
  49.  
  50.            Console.Read();  
  51.        }  
  52.    }  

注意:

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

不允许不安全块。

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

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

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

C#中重要关键字的详解 文中对C#编程中几个非常重要的关键字static,const,readonly,this做了详细的使用说明。 阅读详情

相关推荐

C#类方法声明where的用法

转载:https://www.cnblogs.com/tudouguaishou/p/4773341.html where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量。 1.接口约束。 例如,可以声明一个泛型类MyGenericClass,这样,类型参数T就可以实现 IComparable<T> 接口: publicclassMyGene...

qq_42380656的博客 1836

C# 中的执行上下文关键字是什么?

C#中,执行上下文是指在程序执行期间,用于跟踪和管理程序状态的关键信息。通过使用特定的关键字,开发人员可以控制和操作执行上下文,以实现对程序行为的精确控制。下面将介绍C#中的几个与执行上下文相关的关键字。``lock` 关键字用于实现互斥锁,用于在多线程环境中保护共享资源的访问。这些关键字C#中提供了丰富的功能,帮助开发人员更好地控制程序的执行上下文和资源管理。通过合理地使用这些关键字,可以提高程序的性能、可读性和可维护性。await` 关键字用于等待异步操作的结果,在等待期间允许执行其他操作。

Meta_C的博客 280

C#关键字汇总

学习C#

weixin_43737866的博客 6306

C#中的常用关键字及用法

C# 中常用的一些关键字,掌握这些关键字可以帮助开发人员更好地控制程序的流程和语法规则。在实际的开发中,开发人员还需要了解更多的关键字和保留字,以便更好地进行编程。

jiawei31191的博客 6259

C# 参考之上下文关键字get、set、value、partial、where和yield

上下文关键字用于提供代码中的特定含义,但它不是 C# 中的保留字。 get、set、value get 在属性或索引器中定义“访问器”方法,以检索该属性或该索引器元素的值。 set 义属性或索引器中的“访问器”方法,用于设置属性或索引器元素的值。 value 隐式参数,用于设置访问器以及添加或移除事件处理程序。 //简单示例 classEmployee { priv...

weixin_30745641的博客 249

c#关键字及说明

c# 包含哪些关键字关键字C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。 在 C# 中,有些关键字在代码的上下文中有特殊的意义,如 get 和 set,这些被称为上下文关键字(contextual keywords)。 下表列出了 C# 中的保留关键字(Reserved Keywords)和上下文关键字(Contextual Keywords): abstract 可以和类、方法、属性、索引器及事件一起使用,

weixin_54756832的博客 6428

C# 关键字

abstract 用于声明虚类,指示某个类只能是其他类的基类。

2403_88969259的博客 1752

C#C# 所有关键字总结

本文系统总结了C#中enum、struct和class三种类型的特性与区别。enum用于定义命名常量集合,适合状态标识和选项配置;struct作为轻量级值类型,适用于小型数据封装;class则用于构建复杂业务对象,支持完整的面向对象特性。三者关键差异体现在存储位置(栈/堆)、赋值行为(复制值/引用)和使用场景上。enum和struct是值类型,赋值时复制整个数据,而class是引用类型,赋值时传递引用。合理选择类型可提升代码质量和性能,如频繁创建的小对象适合struct,需要继承和多态的场景应使用class

杰西笔记 2万+

C# 所有关键字语法详解

通过本文的详细介绍,相信您已经对 C# 中的关键字有了全面的了解。掌握这些关键字的使用是编写高效、可维护 C# 代码的基础。建议在实际开发中结合具体场景深入学习和实践这些关键字的应用。

让每一个想学习编程的人,都能学会,都能看懂,看了都有收获! 1783

C#基础-关键字详解

C#关键字详解总结

qq_30725967的博客 4121

c#中char_C#中的char关键字

c#中char C#char关键字 (C# char keyword) In C#, char is a keyword which is used to declare a variable that can store a character value (Unicode value) value between the range of +U0000 to U+FFFF. char keyw...

1548

C#——关键字:readonly

C#——关键字:readonly readonly 关键字是一个可在四个上下文中使用的修饰符: 在字段声明中,readonly 指示只能在声明期间或在同一个类的构造函数中向字段赋值。 可以在字段声明和构造函数中多次分配和重新分配只读字段。 构造函数退出后,不能分配 readonly 字段。 此规则对于值类型和引用类型具有不同的含义: 1.由于值类型直接包含数据,因此属于 readonly 值类型的字段不可变。 2.由于引用类型包含对其数据的引用,因此属于 readonly 引用类型的字段必须始终引用同一

weixin_43945471的博客 1万+

c#里面int.关键字_C#中的int关键字

c#里面int.关键字 C#int关键字 (C# int keyword) In C#, int is a keyword which is used to declare a variable that can store an integral type of value (signed integer) the range of -2,147,483,648 to 2,147,483,647...

cumtv80668的专栏 1612

四、C#关键字

C#包含对编译器具有特殊含义的保留字。这些保留字称为“关键字”。关键字不能用作标识符(变量名,类,接口等)。 C#中的关键字分布在以下类别中: 修饰语 修饰语关键字是特定的关键字,指示谁可以修改类型和类型成员。修饰符允许或阻止程序的某些部分被其他部分修改。 修饰语关键字 abstract async const event extern new override partial readonly sealed static unsafe v.

ananlele_的专栏 819

C#:is关键字

定义:is 关键字C# 提供的一种运算符,用于检查一个对象是否与某个类型兼容。如果兼容,返回 true;否则返回 false。它不会改变对象本身,也不会抛出异常,是一种安全的方式来检查类型。为什么要用 is 而不是直接转换?从第一性原理看:假设你有一个神秘的盒子(对象),你不确定里面是苹果还是橘子。如果你直接试着把它当作苹果(强制转换),但里面是橘子,可能会出错(抛出异常)。is 就像先用 X 光检查一下,确认里面“是不是”苹果,再决定下一步。

2402_88047672的博客 1558
上一篇: C#技巧—哈希表Hashtable用法
下一篇: C#常用转义符
续写经典
博客等级 码龄15年 619粉丝 254原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值