`
hcyoo
  • 浏览: 20924 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

C#几个不常用的关键字

    博客分类:
  • .net
阅读更多
1、yield
yield关键字会告诉编译器当前的函数是在一个循环内部,编译器会相应生成一个执行它在循环体内部所表示行为的类,yield和return关键字一起用于为枚举器对象提供返回值,比如说:在foreach内部的每一次循环内,yield关键字用于终止当前循环:
以下为MSDN示例代码http://msdn.microsoft.com/en-us/library/9k7k7cf0.aspx
using System.Collections; 
public classList 
  { 

      public static IEnumerable Power(int number, int exponent) 
       { 
           int counter = 0; 
           int result = 1; 
           while(counter++ < exponent) 
           { 
               result = result * number; 
               yield return result; 
           } 
       } 

       static void Main() 
       { 
          foreach (int i in Power(2, 8)) 
           { 
               Console.Write("{0} ", i); 
           } 
       } 
   } 



输出:
2
4
8
16
32
64
128
256

===================================
2、using
定义一个范围,在范围外的对象将会被回收:
public static List<updatetime_model> UpdateTime(string datetime)
        {
             SqlParameter[] par = new SqlParameter[] {
                new SqlParameter("@time",datetime)
            };
            List<updatetime_model> time = null;
            [color=red]using (SqlDataReader r = SqlHelper.ExecuteReader("UpdateDate_GetTime",par))
            {
                while (r.Read())
                {
                    if (time == null)
                    {
                        time = new List<updatetime_model>();
                    }
                    time.Add(ConvertTime(r));
                }

                if (r.NextResult() && r.Read())
                {
                    lastdt = r.GetString(0);                 
                }
            }[/color]
            return time;
        }



参考链接:http://hatim.indexdev.net/2009/12/08/10-not-so-well-known-keywords-in-c/
分享到:
评论
7 楼 Cresting 2009-12-24  
using还是常看到或用到的,对一些实现了IDisposable接口的类,yield对我来说的确用的比较少的...
6 楼 Taven.Li 2009-12-19  
确实有一些很少用到的关键字
5 楼 wandou 2009-12-19  
using可是常用关键字。
4 楼 ray_linn 2009-12-18  
呵呵,yield是迭代器。
3 楼 RednaxelaFX 2009-12-17  
幸存者 写道
C#最不常用关键字候选:stackalloc, volatile, sizeof

volatile常用与否倒不一定……不过用的时候很可能代码有问题 =_=||||
unsafe、stackalloc、fixed、sizeof还有&、*、->都属于相似的“常用程度”了orz

P.S. stackalloc挺讨厌的……在VS里要打static总是被IntelliSense先忽悠到stackalloc上 T.T
2 楼 幸存者 2009-12-17  
C#最不常用关键字候选:stackalloc, volatile, sizeof
1 楼 RednaxelaFX 2009-12-17  
话说这俩关键字都挺常用的……取决于使用场景和使用者使用C#的程度。特别是如果代码里有很多需要用到除内存外的别的资源时,using语句是非常常用的。using只是调用Dispose方法而已,并不导致对象被“回收”。
yield也跟“循环”没啥直接关系。只不过大家经常用循环来遍历IEnumerable<T>所以看起来似乎跟循环有关系……|||

要说不常用的话,fixed、unsafe、extern之类的更不常用了 >_<

相关推荐

    C#中的Internal关键字小结

    首先,理清几个概念:项目(project)、解决方案(solution)、程序集(assembly)、命名空间(namespace)。 项目(project) 就是我们开发的一个软件。.NET下,项目有多种类型,如控制台、Windows应用程序、类库...

    描述C#多线程中lock关键字的使用分析

    这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个...

    .net(c#)中的new关键字详细介绍

    考虑以下几个问题: 1、new一个class对象和new一个struct或者new一个enum有什么不同?  答:new一个class时,new完成2个内容:一是调用newobj命令为实例在托管堆中分配内存,二是调用构造函数实现对象初始化。  ...

    深入探讨C#中的const、readonly关键字

    一:值得推敲的几个地方 1.先来看看msdn上面对const是怎么说的,我们会看到。不能修改,编译时常量这些关键性信息。 Q: const为什么不能被修改。 A:这个很简单,很多教科书上面都说,当编译器编译时,会将常量的...

    c#多线程中Lock()关键字的用法小结

    本文介绍C# lock关键字,C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。 每个线程都有自己的资源,但是代码区是共享...

    c#实现几种排序算法,并输出关键字比较次数和交换次数

    6个排序的算法...折腾我挺久的 快速排序是参照了另外一个人的程序,而堆排序也是...堆排序我自己都看不怎么懂 主要也是关键字比较次数和交换次数吧.也不知道对不对 有错误还希望各位指出,谢谢!

    C# partial关键字说明

    局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。 局部类型适用于以下情况: (1) 类型特别大,不宜放在一个文件中实现。 (2) 一个类型中的一部分代码为自动化工具生成的代码,...

    详解C# partial 关键字的使用

    局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。 局部类型适用于以下情况: (1) 类型特别大,不宜放在一个文件中实现。 (2) 一个类型中的一部分代码为自动化工具生成的代码,...

    基于C#语言对文件夹下所有Excel文件进行批处理

    这个程序是一个使用 C# 编写的控制台应用程序,它通过用户输入文件夹路径,读取该路径下所有名称中包含 "自定" 的 Excel 文件。然后,程序在这些 Excel 文件中查找包含 "需要数据" 的单元格,并输出该单元格的位置和...

    C#中partial关键字的作用

    局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。 局部类型适用于以下情况: (1) 类型特别大,不宜放在一个文件中实现。 (2) 一个类型中的一部分代码为自动化工具生成的代码,...

    C# for CSDN 乱七八糟的看不懂

    C#关键字 关键字 abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach ...

    C#多线程学习入门圣典

    Thread类有几个至关重要的方法 3 C#多线程学习(二) 如何操纵一个线程 3 Thread.ThreadState 属性 5 线程的优先级 5 C#多线程学习(三) 生产者和消费者 5 While争夺发生,lock语句 5 Monitor 类锁定一个对象 8 C#多...

    c#学习笔记.txt

    如前所述,我是一个狮子座男人,一度我认为学习Java会使我看起来与众不同,可是几个月以后我放弃了这个选择,我看了论坛里关于这两种语言孰优孰劣的讨论,最终选择了C#,请不要问我为何做出这样的选择,很多人认为...

    (C#)词法分析器

    1、该词法分析器要求至少能够识别以下几类单词: (1)关键字:else if int return void while共6个,所有的关键字都是保留字,并且必须是小写; (2)标识符:识别与C语言词法规定相一致的标识符,通过下列...

    你必须知道的C#的25个基础概念(附源码)

    如果基类中的虚属性只有一个属性访问器,那么继承类重写该属性后可以有几个属性访问器?如果基类中有 get 和 set 两个呢? 14.abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗? 15.接口可以包含...

    c#基础学习问答c#基础学习问答

    13.如果基类中的虚属性只有一个属性访问器,那么继承类重写该属性后可以有几个属性访问器?如果基类中有 get 和 set 两个呢? 14.abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗? 15.接口可以...

    C#微软培训资料

    第一部分 C#语言概述.4 第一章 第一章第一章 第一章 .NET 编 编 编程语言 程语言编程语言 程语言 C#.4 1.1 Microsoft.NET——一场新的革命.4 1.2 .NET 与 C#.6 1.3 C#语言的特点.8 1.4 小 结 .11...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    《C#开发实例大全(基础卷)》筛选、汇集了C#开发从基础知识到高级应用各个层面约600个实例及源代码,每个实例都按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析解读。全书分6篇共25章,主要...

    C#多线程学习入门圣典(修改版)

    Thread类有几个至关重要的方法 3 C#多线程学习(二) 如何操纵一个线程 3 Thread.ThreadState 属性 5 线程的优先级 5 C#多线程学习(三) 生产者和消费者 5 While争夺发生,lock语句 5 Monitor 类锁定一个对象 8 ...

Global site tag (gtag.js) - Google Analytics