• λ我爱Aspx >> C#.Net >> c#泛型学习(二)_C#教程
  • c#泛型学习(二)_C#教程

  • :aspxer  Դ:internet  :2007-4-28 20:58:03  ؼ:c#
  • 1.泛型和泛型强制转换

    1using System;

    2using System.Collections.Generic;

    3using System.Text;

    4

    5namespace VS2005Demo2

    6{

    7

    8 C# 编译器只允许将泛型参数隐式强制转换到 Object 或约束指定的类型#region C# 编译器只允许将泛型参数隐式强制转换到 Object 或约束指定的类型

    9 public interface ISomeInterface

    10 { }

    11 class BaseClass

    12 { }

    13 class MyClass<T> where T : BaseClass, ISomeInterface

    14 {

    15 void SomeMethod(T t)

    16 {

    17 ISomeInterface obj1 = t;

    18 BaseClass obj2 = t;

    19 object obj3 = t;

    20 }

    21 }

    22 #endregion

    23

    24 编译器允许您将泛型参数显式强制转换到其他任何接口,但不能将其转换到类#region 编译器允许您将泛型参数显式强制转换到其他任何接口,但不能将其转换到类

    25 class SomeClass

    26 { }

    27 //class MyClass1<T>

    28 //{

    29 // void SomeMethod(T t)

    30 // {

    31 // ISomeInterface obj1 = (ISomeInterface)t; //Compiles

    32 // SomeClass obj2 = (SomeClass)t; //Does not compile

    33 // }

    34 //}

    35 #endregion

    36

    37

    38 使用临时的 Object 变量,将泛型参数强制转换到其他任何类型#region 使用临时的 Object 变量,将泛型参数强制转换到其他任何类型

    39 class MyClass2<T>

    40 {

    41 void SomeMethod(T t)

    42 {

    43 object temp = t;

    44 SomeClass obj = (SomeClass)temp;

    45 }

    46 }

    47 #endregion

    48

    49 使用is和as运算符#region 使用is和as运算符

    50 public class MyClass3<T>

    51 {

    52 public void SomeMethod(T t)

    Ҷƪл˵?
  • һƪc#2.0泛型学习(一) _C#教程
    һƪC# 3.0新特性初步研究 Part1:使用隐含类型的本地变量_C#教程