很酷的.Net技巧(二)

来源:互联网 发布:ubuntu 卸载mongodb 编辑:程序博客网 时间:2024/05/20 06:28
二. OOPs
1. 什么是复制构造函数
我们知道构造函数是用来初始化我们要创建实例的特殊的方法。通常我们要将一个实例赋值给另外一个变量c#只是将引用赋值给了新的变量实质上是对同一个变量的引用,那么我们怎样才可以赋值的同时创建一个全新的变量而不只是对实例引用的赋值呢?我们可以使用复制构造函数。
我们可以为类创造一个只用一个类型为该类型的参数的构造函数,如:
public Student(Student student)
{
    this.name = student.name;
}

使用上面的构造函数我们就可以复制一份新的实例值,而非赋值同一引用的实例了。
class Student
{
    private string name;
    public Student(string name)
    {
        this.name = name;
    }
    public Student(Student student)
    {
        this.name = student.name;
    }
    public string Name
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
        }
    }
}
class Final
{
    static void Main()
    {
        Student student = new Student("A");
        Student NewStudent = new Student(student);
        student.Name = "B";
        System.Console.WriteLine("The new student's name is {0}", NewStudent.Name);
    }
}

2 .什么是只读常量
就是静态的只读变量,它通常在静态构造函数中赋值。
class Numbers
{
    public readonly int m;
    public static readonly int n;

    public Numbers(int x)
    {
        m = x;
    }

    static Numbers()
    {
        n = 100;
    }

} //其中n就是一个只读的常量,对于该类的所有实例他只有一种值,而m则根据实例不同而不同

三.VS.Net IDE
1. 2请看原作
3.如何改变region的颜色
   通过工具 à 选项 à 环境 à 字体和颜色 à 可折叠文本设置
 
四.WinForm
1.如何使winForm不显示标题栏?
通过设置form的Text属性为空字符串,设置ControlBox属性为false
form1.Text = string. Empty;
form1.ControlBox = false;
2.如何使winform的窗体使用XP的风格
见原作
3.如何禁止form在工具栏显示
设置form的ShowInTaskbar属性为false即可
4.如何使程序打开默认的邮件程序并带有一些参数让用户开始写邮件
         1)如果是web程序:
         <a href=”mailto:email@address1.com,email@address2.com?cc=email@address3.com&Subject=Hello&body=Happy New Year”>some text</a>
         2) 对于windows程序,需要使用System.Diagnostics.Process类
Process process = new Process();
process.StartInfo.FileName = "mailto:email@address1.com,email@address2.com?subject=Hello&cc=email@address3.com&bcc=email@address4.com&body=Happy New Year" ;

process.Start();

5.如何创建类似msn提示窗口
需要获得通过Screen.GetWorkingArea(this).Width(Height)属性获得屏幕的大小,然后使用一个timer根据时间改变窗口的位置
五.Button控件
1.如何设置form的默认button(即在form上按下回车时触发的button)
         可以设置form的AcceptButton属性:form1.AcceptButton = button1;
2. 如何设置form的取消button(即在用户按下Esc键时触发的button)
         可以设置form的CancelButton属性:form1.CancelButton = buttonC;
3. 如何通过程序触发一个button的Click事件
         Button1.PerformClick
 
六.Combo Box
1.如何使用可选字体填充Combo Box
comboBox1.Items.AddRange (FontFamily.Families);
 
七.TextBox
1.如何禁用TextBox的默认上下文菜单(右键菜单)
textBox1.ContextMenu = new ContextMenu();
2,3 见原作
4.如何在TextBox获得焦点的时候,将焦点放在textBox文字的最后
textBox1.SelectionStart = textBox1.Text.Length;