您的位置:首页 > 其它

关于类型判断符is和迭代器接口实现中yield return的使用

2012-05-13 14:36 393 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 学习2
{
class Program
{
static void Main(string[] args)
{
mytest mt = new mytest();
foreach (object element in mt)//由于返回的数值的类型不统一,所以采用object来接受
{
if (element is string)//利用is来判断数据的类型再对应处理
{
Console.WriteLine(Convert.ToString(element));
}
if (element is int)
{
int sum = Convert.ToInt32(element) + 1;
Console.WriteLine(sum);
}
}
}
}

class mytest
{
public System.Collections.IEnumerator GetEnumerator()   //在类中实现foreach迭代器IEnumerator接口的GetEnumerator方法
{
yield return "hello";   //利用yield return依次返回不同的文字和数值
yield return 1;
yield return "good";
}
}
}


  

  is类型判断符MSDN说明:http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=ZH-CN&k=k(IS_CSHARPKEYWORD);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22);k(DevLang-CSHARP)&rd=true

注意:is判断符所返回的数值为true或false,并且is对于能强制转换而不引发异常的类型返回true(例如 继承类 is 基类)

class Class1 {}
class Class2 {}
class Class3 : Class2 { }
class IsTest
{
static void Main()
{
Class1 c1 = new Class1();
Class2 c2 = new Class2();
Class3 c3 = new Class3();
if(c1 is Class1)//返回 true
{
}         }
if(c2 is Class2)//返回 true
{
}
if(c3 is Class2)//返回 true
{
}
}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐