作者:webabcd
介绍
C# 2.0 除了泛型之外的东东。
可空类型
 /*
/*
 *可空类型
 *可空类型 
 */
*/
 using System;
using System;
 using System.Data;
using System.Data;
 using System.Configuration;
using System.Configuration;
 using System.Collections;
using System.Collections;
 using System.Web;
using System.Web;
 using System.Web.Security;
using System.Web.Security;
 using System.Web.UI;
using System.Web.UI;
 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;
 using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.WebParts;
 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;

 public partial class CSharp20_Nullable : System.Web.UI.Page
public partial class CSharp20_Nullable : System.Web.UI.Page
 {
{
 protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e)
 {
    {
 // 针对值类型的可空类型
        // 针对值类型的可空类型
 Nullable<DateTime> dt = null;
        Nullable<DateTime> dt = null;
 DateTime? dt2 = null;
        DateTime? dt2 = null;

 // ??分配默认值
        // ??分配默认值
 int? x = null;
        int? x = null;
 int y = x ?? -1;
        int y = x ?? -1;

 // x的默认值为0
        // x的默认值为0
 Response.Write(y.ToString());
        Response.Write(y.ToString());
 }
    }
 }
}
 运行结果
运行结果
-1
匿名方法
 /*
/*
 * 匿名方法
 * 匿名方法
 */
*/
 using System;
using System;
 using System.Data;
using System.Data;
 using System.Configuration;
using System.Configuration;
 using System.Collections;
using System.Collections;
 using System.Web;
using System.Web;
 using System.Web.Security;
using System.Web.Security;
 using System.Web.UI;
using System.Web.UI;
 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;
 using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.WebParts;
 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;

 public partial class CSharp20_AnonymousMethod : System.Web.UI.Page
public partial class CSharp20_AnonymousMethod : System.Web.UI.Page
 {
{
 protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e)
 {
    {
 Button btn = new Button();
        Button btn = new Button();
 btn.Text = "按钮";
        btn.Text = "按钮";
 // 一般方法
        // 一般方法
 btn.Click += new EventHandler(btn_Click);
        btn.Click += new EventHandler(btn_Click);
 // 省略掉委托类型
        // 省略掉委托类型
 btn.Click += btn_Click2;
        btn.Click += btn_Click2;
 // 不带参数的匿名方法
        // 不带参数的匿名方法
 btn.Click += delegate { Response.Write("按钮被单击(不带参数的匿名方法)<br />"); };
        btn.Click += delegate { Response.Write("按钮被单击(不带参数的匿名方法)<br />"); };
 // 带参数的匿名方法(参数数量和类型要一致)
        // 带参数的匿名方法(参数数量和类型要一致)
 btn.Click += delegate(object obj, EventArgs er) { Response.Write("按钮被单击(带参数的匿名方法)<br />"); };
        btn.Click += delegate(object obj, EventArgs er) { Response.Write("按钮被单击(带参数的匿名方法)<br />"); };

 Page.Form.Controls.Add(btn);
        Page.Form.Controls.Add(btn);
 }
    }

 void btn_Click(object sender, EventArgs e)
    void btn_Click(object sender, EventArgs e)
 {
    {
 Response.Write("按钮被单击<br />");
        Response.Write("按钮被单击<br />");
 }
    }

 void btn_Click2(object sender, EventArgs e)
    void btn_Click2(object sender, EventArgs e)
 {
    {
 Response.Write("按钮被单击(省略掉委托类型)<br />");
        Response.Write("按钮被单击(省略掉委托类型)<br />");
 }
    }
 }
}
 按了按钮后的运行结果
按了按钮后的运行结果
按钮被单击
按钮被单击(省略掉委托类型)
按钮被单击(不带参数的匿名方法)
按钮被单击(带参数的匿名方法)
迭代器
 /*
/*
 * 迭代器
 * 迭代器
 * 要实现foreach必须实现接口IEnumerable或者IEnumerator
 * 要实现foreach必须实现接口IEnumerable或者IEnumerator
 */
*/
 using System;
using System;
 using System.Data;
using System.Data;
 using System.Configuration;
using System.Configuration;
 using System.Collections;
using System.Collections;
 using System.Web;
using System.Web;
 using System.Web.Security;
using System.Web.Security;
 using System.Web.UI;
using System.Web.UI;
 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;
 using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.WebParts;
 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;

 public class Charp20Yield
public class Charp20Yield
 {
{
 public static IEnumerable YieldTest()
    public static IEnumerable YieldTest()
 {
    {
 string[] ary = new string[] { "a", "b", "c", "d", "e", "f", "g" };
        string[] ary = new string[] { "a", "b", "c", "d", "e", "f", "g" };

 foreach (string s in ary)
        foreach (string s in ary)
 {
        {
 if (s != "e")
            if (s != "e")
 {
            {
 // 产生枚举元素
                // 产生枚举元素
 yield return s;
                yield return s;
 }
            }
 else
            else
 {
            {
 // 中断迭代
                // 中断迭代
 yield break;
                yield break;
 }
            }
 }
        }
 }
    }
 }
}


 public partial class CSharp20_Iterator : System.Web.UI.Page
public partial class CSharp20_Iterator : System.Web.UI.Page
 {
{
 protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e)
 {
    {
 // 使用自定义迭代器
        // 使用自定义迭代器
 foreach (string s in Charp20Yield.YieldTest())
        foreach (string s in Charp20Yield.YieldTest())
 {
        {
 Response.Write(s);
            Response.Write(s);
 Response.Write("<br />");
            Response.Write("<br />");
 }
        }
 }
    }
 }
}
 运行结果
运行结果
a
b
c
d
partial类
 /*
/*
 * partial类
 * partial类
 */
*/
 using System;
using System;
 using System.Data;
using System.Data;
 using System.Configuration;
using System.Configuration;
 using System.Collections;
using System.Collections;
 using System.Web;
using System.Web;
 using System.Web.Security;
using System.Web.Security;
 using System.Web.UI;
using System.Web.UI;
 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;
 using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.WebParts;
 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;

 // partial类可以写在不同的文件里,实际上就是取并集,类的修饰符要一致
// partial类可以写在不同的文件里,实际上就是取并集,类的修饰符要一致
 public partial class PartialTest : IDisposable
public partial class PartialTest : IDisposable
 {
{
 public string Get()
    public string Get()
 {
    {
 return "PartialTest";
        return "PartialTest";
 }
    }
 }
}

 // partial类可以写在不同的文件里,实际上就是取并集,类的修饰符要一致
// partial类可以写在不同的文件里,实际上就是取并集,类的修饰符要一致
 public partial class PartialTest
public partial class PartialTest
 {
{
 public void Dispose()
    public void Dispose()
 {
    {
 // 略
        // 略
 }
    }
 }
}


 public partial class CSharp20_Partial : System.Web.UI.Page
public partial class CSharp20_Partial : System.Web.UI.Page
 {
{
 protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e)
 {
    {
 PartialTest pt = new PartialTest();
        PartialTest pt = new PartialTest();
 Response.Write(pt.Get());
        Response.Write(pt.Get());
 pt.Dispose();
        pt.Dispose();
 }
    }
 }
}
 运行结果
运行结果
PartialTest
其它
 /*
/*
 * 其它
 * 其它
 */
*/
 using System;
using System;
 using System.Data;
using System.Data;
 using System.Configuration;
using System.Configuration;
 using System.Collections;
using System.Collections;
 using System.Web;
using System.Web;
 using System.Web.Security;
using System.Web.Security;
 using System.Web.UI;
using System.Web.UI;
 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;
 using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.WebParts;
 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;

 // 指定别名
// 指定别名
 using xyz = System.Text;
using xyz = System.Text;

 public partial class CSharp20_Other : System.Web.UI.Page
public partial class CSharp20_Other : System.Web.UI.Page
 {
{
 protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e)
 {
    {
 CSharp20_Other_Test c = new CSharp20_Other_Test();
        CSharp20_Other_Test c = new CSharp20_Other_Test();
 c.CurrentTime = DateTime.Now;
        c.CurrentTime = DateTime.Now;

 // 下面这句会报错
        // 下面这句会报错
 // Response.Write(c.CurrentTime.ToLongDateString());
        // Response.Write(c.CurrentTime.ToLongDateString());

 // 没问题,因为set是internal的
        // 没问题,因为set是internal的
 c[2] = "insert";
        c[2] = "insert";
 Response.Write(c[2]);
        Response.Write(c[2]);
 Response.Write("<br />");
        Response.Write("<br />");

 // 自定义类与framework类 类名重复时,自定义类优先
        // 自定义类与framework类 类名重复时,自定义类优先
 // xyz是命名空间别名
        // xyz是命名空间别名
 // 访问全局的话用gloab
        // 访问全局的话用gloab
 Response.Write(xyz::Encoding.Default.EncodingName);
        Response.Write(xyz::Encoding.Default.EncodingName);
 }
    }
 }
}

 public class CSharp20_Other_Test
public class CSharp20_Other_Test
 {
{
 private DateTime _currentTime;
    private DateTime _currentTime;
 public DateTime CurrentTime
    public DateTime CurrentTime
 {
    {
 // 给访问器增加修饰符
        // 给访问器增加修饰符
 // 如果接口定义访问器了,则所有继承的都是public
        // 如果接口定义访问器了,则所有继承的都是public
 protected get { return _currentTime; }
        protected get { return _currentTime; }
 set { _currentTime = value; }
        set { _currentTime = value; }
 }
    }

 private string[] ary = new string[] { "a", "b", "c", "d", "e", "f", "g" };
    private string[] ary = new string[] { "a", "b", "c", "d", "e", "f", "g" };
 public string this[int index]
    public string this[int index]
 {
    {
 get { return ary[index]; }
        get { return ary[index]; }
 // 给索引器增加修饰符
        // 给索引器增加修饰符
 internal set { ary[index] = value; }
        internal set { ary[index] = value; }
 }
    }
 }
运行结果
}
运行结果
insert
简体中文(GB2312)
OK
[源码下载]
介绍
C# 2.0 除了泛型之外的东东。
可空类型
 /*
/* *可空类型
 *可空类型  */
*/ using System;
using System; using System.Data;
using System.Data; using System.Configuration;
using System.Configuration; using System.Collections;
using System.Collections; using System.Web;
using System.Web; using System.Web.Security;
using System.Web.Security; using System.Web.UI;
using System.Web.UI; using System.Web.UI.WebControls;
using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;
 public partial class CSharp20_Nullable : System.Web.UI.Page
public partial class CSharp20_Nullable : System.Web.UI.Page {
{ protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e) {
    { // 针对值类型的可空类型
        // 针对值类型的可空类型 Nullable<DateTime> dt = null;
        Nullable<DateTime> dt = null; DateTime? dt2 = null;
        DateTime? dt2 = null;
 // ??分配默认值
        // ??分配默认值 int? x = null;
        int? x = null; int y = x ?? -1;
        int y = x ?? -1;
 // x的默认值为0
        // x的默认值为0 Response.Write(y.ToString());
        Response.Write(y.ToString()); }
    } }
}
-1
匿名方法
 /*
/* * 匿名方法
 * 匿名方法 */
*/ using System;
using System; using System.Data;
using System.Data; using System.Configuration;
using System.Configuration; using System.Collections;
using System.Collections; using System.Web;
using System.Web; using System.Web.Security;
using System.Web.Security; using System.Web.UI;
using System.Web.UI; using System.Web.UI.WebControls;
using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;
 public partial class CSharp20_AnonymousMethod : System.Web.UI.Page
public partial class CSharp20_AnonymousMethod : System.Web.UI.Page {
{ protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e) {
    { Button btn = new Button();
        Button btn = new Button(); btn.Text = "按钮";
        btn.Text = "按钮"; // 一般方法
        // 一般方法 btn.Click += new EventHandler(btn_Click);
        btn.Click += new EventHandler(btn_Click); // 省略掉委托类型
        // 省略掉委托类型 btn.Click += btn_Click2;
        btn.Click += btn_Click2; // 不带参数的匿名方法
        // 不带参数的匿名方法 btn.Click += delegate { Response.Write("按钮被单击(不带参数的匿名方法)<br />"); };
        btn.Click += delegate { Response.Write("按钮被单击(不带参数的匿名方法)<br />"); }; // 带参数的匿名方法(参数数量和类型要一致)
        // 带参数的匿名方法(参数数量和类型要一致) btn.Click += delegate(object obj, EventArgs er) { Response.Write("按钮被单击(带参数的匿名方法)<br />"); };
        btn.Click += delegate(object obj, EventArgs er) { Response.Write("按钮被单击(带参数的匿名方法)<br />"); };
 Page.Form.Controls.Add(btn);
        Page.Form.Controls.Add(btn); }
    }
 void btn_Click(object sender, EventArgs e)
    void btn_Click(object sender, EventArgs e) {
    { Response.Write("按钮被单击<br />");
        Response.Write("按钮被单击<br />"); }
    }
 void btn_Click2(object sender, EventArgs e)
    void btn_Click2(object sender, EventArgs e) {
    { Response.Write("按钮被单击(省略掉委托类型)<br />");
        Response.Write("按钮被单击(省略掉委托类型)<br />"); }
    } }
}
按钮被单击
按钮被单击(省略掉委托类型)
按钮被单击(不带参数的匿名方法)
按钮被单击(带参数的匿名方法)
迭代器
 /*
/* * 迭代器
 * 迭代器 * 要实现foreach必须实现接口IEnumerable或者IEnumerator
 * 要实现foreach必须实现接口IEnumerable或者IEnumerator */
*/ using System;
using System; using System.Data;
using System.Data; using System.Configuration;
using System.Configuration; using System.Collections;
using System.Collections; using System.Web;
using System.Web; using System.Web.Security;
using System.Web.Security; using System.Web.UI;
using System.Web.UI; using System.Web.UI.WebControls;
using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;
 public class Charp20Yield
public class Charp20Yield {
{ public static IEnumerable YieldTest()
    public static IEnumerable YieldTest() {
    { string[] ary = new string[] { "a", "b", "c", "d", "e", "f", "g" };
        string[] ary = new string[] { "a", "b", "c", "d", "e", "f", "g" };
 foreach (string s in ary)
        foreach (string s in ary) {
        { if (s != "e")
            if (s != "e") {
            { // 产生枚举元素
                // 产生枚举元素 yield return s;
                yield return s; }
            } else
            else {
            { // 中断迭代
                // 中断迭代 yield break;
                yield break; }
            } }
        } }
    } }
}

 public partial class CSharp20_Iterator : System.Web.UI.Page
public partial class CSharp20_Iterator : System.Web.UI.Page {
{ protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e) {
    { // 使用自定义迭代器
        // 使用自定义迭代器 foreach (string s in Charp20Yield.YieldTest())
        foreach (string s in Charp20Yield.YieldTest()) {
        { Response.Write(s);
            Response.Write(s); Response.Write("<br />");
            Response.Write("<br />"); }
        } }
    } }
}
a
b
c
d
partial类
 /*
/* * partial类
 * partial类 */
*/ using System;
using System; using System.Data;
using System.Data; using System.Configuration;
using System.Configuration; using System.Collections;
using System.Collections; using System.Web;
using System.Web; using System.Web.Security;
using System.Web.Security; using System.Web.UI;
using System.Web.UI; using System.Web.UI.WebControls;
using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;
 // partial类可以写在不同的文件里,实际上就是取并集,类的修饰符要一致
// partial类可以写在不同的文件里,实际上就是取并集,类的修饰符要一致 public partial class PartialTest : IDisposable
public partial class PartialTest : IDisposable {
{ public string Get()
    public string Get() {
    { return "PartialTest";
        return "PartialTest"; }
    } }
}
 // partial类可以写在不同的文件里,实际上就是取并集,类的修饰符要一致
// partial类可以写在不同的文件里,实际上就是取并集,类的修饰符要一致 public partial class PartialTest
public partial class PartialTest {
{ public void Dispose()
    public void Dispose() {
    { // 略
        // 略 }
    } }
}

 public partial class CSharp20_Partial : System.Web.UI.Page
public partial class CSharp20_Partial : System.Web.UI.Page {
{ protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e) {
    { PartialTest pt = new PartialTest();
        PartialTest pt = new PartialTest(); Response.Write(pt.Get());
        Response.Write(pt.Get()); pt.Dispose();
        pt.Dispose(); }
    } }
}
PartialTest
其它
 /*
/* * 其它
 * 其它 */
*/ using System;
using System; using System.Data;
using System.Data; using System.Configuration;
using System.Configuration; using System.Collections;
using System.Collections; using System.Web;
using System.Web; using System.Web.Security;
using System.Web.Security; using System.Web.UI;
using System.Web.UI; using System.Web.UI.WebControls;
using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;
 // 指定别名
// 指定别名 using xyz = System.Text;
using xyz = System.Text;
 public partial class CSharp20_Other : System.Web.UI.Page
public partial class CSharp20_Other : System.Web.UI.Page {
{ protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e) {
    { CSharp20_Other_Test c = new CSharp20_Other_Test();
        CSharp20_Other_Test c = new CSharp20_Other_Test(); c.CurrentTime = DateTime.Now;
        c.CurrentTime = DateTime.Now;
 // 下面这句会报错
        // 下面这句会报错 // Response.Write(c.CurrentTime.ToLongDateString());
        // Response.Write(c.CurrentTime.ToLongDateString());
 // 没问题,因为set是internal的
        // 没问题,因为set是internal的 c[2] = "insert";
        c[2] = "insert"; Response.Write(c[2]);
        Response.Write(c[2]); Response.Write("<br />");
        Response.Write("<br />");
 // 自定义类与framework类 类名重复时,自定义类优先
        // 自定义类与framework类 类名重复时,自定义类优先 // xyz是命名空间别名
        // xyz是命名空间别名 // 访问全局的话用gloab
        // 访问全局的话用gloab Response.Write(xyz::Encoding.Default.EncodingName);
        Response.Write(xyz::Encoding.Default.EncodingName); }
    } }
}
 public class CSharp20_Other_Test
public class CSharp20_Other_Test {
{ private DateTime _currentTime;
    private DateTime _currentTime; public DateTime CurrentTime
    public DateTime CurrentTime {
    { // 给访问器增加修饰符
        // 给访问器增加修饰符 // 如果接口定义访问器了,则所有继承的都是public
        // 如果接口定义访问器了,则所有继承的都是public protected get { return _currentTime; }
        protected get { return _currentTime; } set { _currentTime = value; }
        set { _currentTime = value; } }
    }
 private string[] ary = new string[] { "a", "b", "c", "d", "e", "f", "g" };
    private string[] ary = new string[] { "a", "b", "c", "d", "e", "f", "g" }; public string this[int index]
    public string this[int index] {
    { get { return ary[index]; }
        get { return ary[index]; } // 给索引器增加修饰符
        // 给索引器增加修饰符 internal set { ary[index] = value; }
        internal set { ary[index] = value; } }
    } }
}insert
简体中文(GB2312)
OK
[源码下载]
 
                     
                    
                 
                    
                 
                
 
 
        

 
     
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号