using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
//泛型学习小Demo
public class TestFANXING<T>
{
public T obj;
//构造函数
public TestFANXING(T x)
{
this.obj = x;
this.GetFanXingDataType();
}
//属性
private T abc;
public T ABC
{
get { return abc; }
set { abc = value; }
}
//内部方法
private void GetFanXingDataType()
{
Console.WriteLine(obj.GetType().ToString());
}
}
//常规委托
delegate string MyDelegate(string title, string name);
//泛型委托
delegate T MyDelegate2<T>(T a, T b);
//常规方法
public static string ShowInfo(string Firstname, string LastName)
{
return Firstname + "" + LastName;
}
static void Main(string[] args)
{
//Linq
Console.WriteLine("[01]LINQ 需要三个部分: 数据源、查询、查询的执行。");
int[] numbers = new int[7] { 0, 1, 4, 2, 3, 6, 5 };
//定义一个变量num
//它从numbers中取值
//条件是偶数
//把满足条件的结果赋值给numQuery
var numQuery = from num in numbers where (num % 2) == 0 orderby num select num;
foreach (int m in numQuery)
{
Console.WriteLine("{0}", m);
}
Console.ReadLine();
Console.WriteLine("=====================================");
//Linq的另一种写法
var numQuery2 = numbers.Where(p => p % 2 == 1);
foreach (int n in numQuery2)
{
Console.WriteLine("{0}", n);
}
Console.WriteLine("=====================================");
//常规委托调用方法
MyDelegate Del0 = new MyDelegate(Program.ShowInfo);
Console.WriteLine(Del0("W", "xianS"));
Console.WriteLine("=====================================");
//常规委托与Lambda
MyDelegate Del = (title, name) => string.Format("{0}{1}", title, name);
Console.WriteLine(Del("GoldCup", "Rna"));
Console.WriteLine("=====================================");
//常规委托与Lambda
MyDelegate Del2 = (title, name) =>
{
string s = string.Format("{0}{1}", title, name);
return s;
};
Console.WriteLine(Del2("c#", "Java"));
Console.WriteLine("=====================================");
//泛型委托与Lambda
MyDelegate2<string> Del3 = (A, B) => string.Format("{0}{1}", A, B);
Console.WriteLine(Del3("wang","xianshou"));
Console.WriteLine("=====================================================");
//泛型委托与Lambda
MyDelegate2<int> Del4 = (C, D) =>
{
int iResult = C + D;
return iResult;
};
Console.WriteLine(Del4(3, 4).ToString());
Console.ReadKey();
int y = 2;
int y1 = 5;
//泛型int应用
TestFANXING<int> test = new TestFANXING<int>(y);
test.ABC = y1;
Console.WriteLine("int:"+test.obj);
Console.WriteLine("shuxing int:" + test.ABC);
//泛型string应用
string z = "helloworld";
TestFANXING<string> test1 = new TestFANXING<string>(z);
Console.WriteLine("string:"+test1.obj);
//泛型datetime应用
TestFANXING<DateTime> test2 = new TestFANXING<DateTime>(new DateTime(2008, 8, 8));
test2.ABC = new DateTime(2012, 3, 28);
Console.WriteLine("shuxing datetime:" + test2.obj.ToString()+"---"+test2.ABC.ToString());
Console.ReadLine();
}
}
}