Delegate和泛型结合运用(一)

来源:互联网 发布:mac电脑使用入门 编辑:程序博客网 时间:2024/05/22 11:33
using System;
namespace myTest
{
    
public interface ITest
    
{
        
string Insert(string str);
        
string Update(string str);
        
string Delete(string str);
        
string Select(string str);
    }

    
public class CTest1 : ITest
    
{
        
ITest 成员
    }

    
public class CTest2 : ITest
    
{
        
ITest 成员
    }

    
public delegate void DelegateTest<T>(T t) where T : ITest;
    
static class Program
    
{
        
private static void test1(CTest1 t)
        
{
            Console.WriteLine(t.Insert(
"测试"));
            Console.WriteLine(t.Update(
"测试"));
            Console.WriteLine(t.Delete(
"测试"));
            Console.WriteLine(t.Select(
"测试"));
        }

        
private static void test2(CTest2 t)
        
{
            Console.WriteLine(t.Insert(
"测试"));
            Console.WriteLine(t.Update(
"测试"));
            Console.WriteLine(t.Delete(
"测试"));
            Console.WriteLine(t.Select(
"测试"));
        }

        [STAThread]
        
static void Main()
        
{
            DelegateTest
<CTest1> t1 = new DelegateTest<CTest1>(test1);
            t1(
new CTest1());

            DelegateTest
<CTest2> t2 = new DelegateTest<CTest2>(test2);
            t2(
new CTest2());

            Console.ReadKey();
        }

    }

}

运行结果: 

CTest1-Insert-测试
CTest1-Update-测试
CTest1-Delete-测试
CTest1-Select-测试
CTest2-Insert-测试
CTest2-Update-测试
CTest2-Delete-测试
CTest2-Select-测试

原创粉丝点击