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/
分享到:
相关推荐
在C#编程中,连接MySQL数据库是常见的任务,但有时候可能会遇到一些问题,例如“给定关键字不在字典中”的错误。这个问题通常与使用的MySQL数据访问驱动(MySql.Data.dll)有关。以下是对这个错误的详细分析和解决...
创建自定义控件通常涉及到以下几个步骤: 1. **继承自现有控件**:在C#中,可以继承自System.Windows.Forms.Control类或其子类,如TextBox、RichTextBox等,以获取基础的控件功能。 2. **重写方法和事件**:为了...
C#的New关键字的几种用法 C#语言中的New关键字是一个多功能的关键字,它有多种用法,分别是new运算符、新修饰符和new约束。下面我们将详细介绍这三种用法。 New运算符 New运算符是C#语言中用于创建对象和调用构造...
"C#常用关键字及含义" C#是一种现代的高级语言,它提供了很多种关键字来实现不同的功能。这些关键字可以分为以下几类:类型关键字、控制流关键字、异常处理关键字、类和对象关键字、访问修饰符关键字等。 类型...
此外,C#还引入了几个特殊的字面量关键字,它们分别对应于不同的常量值,如 true、false、null 和 default。还有一些其他上下文关键字,如 add、remove、get、set、value 等,它们主要出现在属性和索引器的定义中。 ...
首先,理清几个概念:项目(project)、解决方案(solution)、程序集(assembly)、命名空间(namespace)。 项目(project) 就是我们开发的一个软件。.NET下,项目有多种类型,如控制台、Windows应用程序、类库...
这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个...
我们将详细讲解以下几个关键点: 1. **一言API的介绍** 一言API(Hitokoto API)是为开发者设计的一个轻量级接口,用于获取各种类型的句子、成语和诗词。开发者可以通过发送HTTP请求来获取特定类型或随机的文本内容...
1. **正则表达式**:在C#中,常用正则表达式来定义和匹配不同的符号类别,如关键字、数字、字符串等。 2. **状态机**:词法分析通常使用有限状态自动机(Finite State Automaton, FSA)的概念,通过改变状态来识别...
**C#的New关键字详解** `C#`中的`new`关键字有着多种用途,它在编程中扮演着重要角色。本文将详细介绍`new`关键字的三种主要用法:`new`运算符、`new`修饰符以及`new`约束。 **1. `new`运算符** `new`运算符的...
在C#中,常用的知识点包括但不限于以下几个方面: 1. **基础语法**:C#是一种类型安全的面向对象的语言,它支持类、接口、结构等面向对象特性。基础语法包括变量声明、数据类型(如int、string、bool等)、运算符、...
从这部分内容中,我们可以提炼出与C#编程语言相关的几个关键知识点进行详细解释。 ### C# 中的 yield 关键字 在 C# 语言中,`yield` 是一个非常有用的特性,它允许迭代器方法返回一系列值而不是单一值。`yield ...
在学习C#的过程中,你需要掌握以下几个关键知识点: 1. **基本语法**:C#的语法结构与C++和Java相似,包括变量声明、数据类型(如int、string、bool等)、运算符、控制流(if-else、switch-case、for、while等)和...
### C#基础知识详解 #### 一、CLR与CTS解析 **CLR**(Common ...以上内容总结了C#面试中常见的几个基础知识点,对于初学者来说非常重要。了解这些基础知识有助于更好地理解和掌握C#语言的核心概念和技术要点。
考虑以下几个问题: 1、new一个class对象和new一个struct或者new一个enum有什么不同? 答:new一个class时,new完成2个内容:一是调用newobj命令为实例在托管堆中分配内存,二是调用构造函数实现对象初始化。 ...
接口在C#中是一种完全抽象的类型,它定义了一组方法的签名,但不包含任何实现。通过实现接口,类可以承诺提供这些方法的实现,这使得不同类之间可以共享相同的公共行为,即使它们之间没有继承关系。例如,我们可以...
本主题将详细介绍在"C#.NET自定义的几个Snippet"中涉及的几个关键知识点: 1. **单元测试函数(Unit Test Function)**:`testFunction.snippet`可能包含了用于创建单元测试的方法模板。在C#.NET中,我们通常使用如...
这个实例集合提供了几个实用的C#程序源码,对于初学者来说是非常有价值的资源。通过学习和实践这些代码,你可以更好地理解和掌握C#网络编程的核心概念。 首先,C#中的网络编程主要基于.NET Framework或.NET Core的...
在C#中实现这些排序算法,并统计关键字比较次数和交换次数,有助于程序员更好地评估算法效率,选择最合适的排序方法。同时,这也是学习数据结构和算法的重要实践环节,能提升编程技能和解决问题的能力。在实际项目中...
基于这些信息,我们可以深入探讨以下几个C#和Silverlight分页相关的知识点: 1. **C#基础**:了解C#的基本语法、数据类型、控制流(如循环、条件语句)、类与对象、接口、继承、多态等面向对象编程的核心概念。 2....