C# 范型入门 1

//1.合法
class C<U,V> {}

//2.合法 -基类已经实例化
class D:C<string,int> {}

//3.合法 - 父类与子类同样是范型,
class E<U,Y>:C<U,Y> 
{}

//4.合法
class F<U,Y>:C:<string,int> {}

//5.非法
class G:C<U,Y> {}

//父类的类型参数要么已经实例化,要么来源于子类

范型类型的成员

 

class C<V>
{
    pulbic V f1;
    
public D<V> f2;    //成为其他范型类型的参数
    public C(V x)
    
this.f1=x;}
}

 

    class Program
    
{
        
static void Main()
        
{
            
int[] arr = 01234 };
            List
<string > list = new List<string >();

            
for (int x = 5; x < 10; x++)
            
{
                list.Add(x.ToString ());
            }


            ProcessItems
<int>(arr);
            ProcessItems
<string >(list);
            Console.ReadLine();
        }


        
static void ProcessItems<T>(IList<T> coll)
        
{
            
foreach (T item in coll)
            
{
                System.Console.Write(item.ToString() 
+ " ");
            }

            System.Console.WriteLine();
        }

    }

 上面这段代码,虽然没有实际意义,但是对理解泛型的基本应用是个好例子。

### C# 泛型的使用方法与详细介绍 C# 的泛型是一种非常重要的语言特性,旨在增强代码的灵活性、可读性和性能。以下是关于 C# 泛型的具体介绍及其使用方法: #### 1. 泛型的基本概念 泛型允许开发者编写可以处理多种数据类型的通用代码,而无需为每种类型单独编写代码。通过引入类型参数,可以使类、接口、方法和委托更加通用且具有更高的复用性[^1]。 #### 2. 定义泛型类 可以通过在类名后面加上尖括号 `<T>` 来定义一个泛型类,其中 `T` 是占位符,表示任何具体的数据类型将在实例化时指定。下面是一个简单的泛型类示例: ```csharp class GenericClass<T> { private T data; public GenericClass(T value) { this.data = value; } public T GetData() { return data; } } ``` 在此例子中,`GenericClass<T>` 可以用于存储任意类型的单个值,并提供了获取该值的方法[^1]。 #### 3. 自定义泛型类的功能扩展 除了基本的属性设置和获取外,还可以为泛型类添加更多的功能。例如,以下展示了一个名为 `MyStudent<T>` 的泛型类,它实现了两个共同的行为:对象组合和遍历打印[^2]。 - **对象组合**:接收两个相同类型的对象并将其存入列表。 - **遍历打印**:接收一个对象列表并对每个元素进行打印。 ```csharp public class MyStudent<T> { /// <summary> /// 将两个对象加入到列表中 /// </summary> /// <param name="arg0">第一个对象</param> /// <param name="arg1">第二个对象</param> /// <returns>包含这两个对象的新列表</returns> public List<T> Add(T arg0, T arg1) { var list = new List<T>(); list.Add(arg0); list.Add(arg1); return list; } /// <summary> /// 遍历并打印列表中的所有项 /// </summary> /// <param name="list">要打印的对象列表</param> public void Foreach(List<T> list) { foreach (var item in list) Console.WriteLine(item); } } ``` 此代码片段展示了如何利用泛型来构建灵活的组件,适用于不同种类的数据结构而不需修改底层逻辑[^2]。 --- ### 总结 C# 泛型极大地提高了程序设计的抽象层次,减少了冗余代码量,同时也增强了运行时的安全保障。无论是基础应用还是高级架构设计,合理运用泛型都能带来显著的好处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值