C#学习笔记(一)

C#特点:

  • 面向对象
  • 简单安全
  • 与Web紧密结合

.NET的特征:

  • 简单地开发和部署
  • 统一的编程模型
  • 提供健壮、安全的执行环境
  • 支持多种编程语言
  • 丰富的类库支持

公共语言运行时(Common Language Runtime,简称CLR)

1、设计目标:

  • 简化开发:安全性、内存管理(相当于指针,但解决了忘记释放内存的困扰)
  • 简化应用程序部署
  • 基类库
  • 支持多种语言

2、相当于JAVA的虚拟机

3、编译和执行

C#学习笔记(一)

.C#中Exe文件中的内容:

  • IL指令(Intermediate Language)
  • 元信息

反编译工具:ildasm.exe

C#快速入门

用VS设计WinForm程序

  • 界面设计

1、插入对象:在工具箱中单击要用的工具

2、设置属性:右击设置属性

  • 程序代码

F7或者双击代码填写代码

  • 运行

点启动或者F5

  • 保存

1、程序为.cs文件

2、项目文件.csproj

3、解决方案.sln

4、其他辅助文件

面向对象程序的核心概念

对象

1、属性(property):表示的是对象的一种状态,如labell.Text,BackColor。

改变文本名称以及背景颜色

private void button2_Click(object sender, EventArgs e)
{
   this.Text = "这是一个应用程序";
   this.BackColor = Color.FromArgb(255, 255, 0);
}

 

2、方法(method):表示的是一种动作,如:MessageBox.Show("hello");

将label移动到指定位置

private void button2_Click(object sender, EventArgs e)
{
   this.Text = "这是一个应用程序";
   this.BackColor = Color.FromArgb(255, 255, 0);
   this.label1.SetBounds(100, 100, 200, 50);
}

 

3、事件(event):表示对象与外界的通知地址或者消息地址,如:Click

                                 +=表示注册了一个事件,比如:事件+=函数。

鼠标移动事件:鼠标移动时在lable的位置显示鼠标的坐标位置。

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
     this.label1.Text = e.X + "," + e.Y;
}

C#其他例子

1、在上面的文本框中输入字母时,下面也会进行一样的操作。

private void textBox1_TextChanged(object sender, EventArgs e)
{
    textBox2.Text = textBox1.Text;
}

2、当点击button1时,label1向右边移动10,并且颜色随机变换。

C#学习笔记(一)

3、上例中改为不点击,label自动变化。

工具箱组件中有一个timer(定时器),将它拖到窗口中,将上述代码拖到timer函数中。设置属性中的Enabled即使能,Interval为时间间隔。如下图。

C#学习笔记(一)

4、按下button时,将文本框中输入的字母转化为大写输出在label中

 protected void Button1_Click(object sender, EventArgs e)
    {
            this.Label1.Text = this.TextBox1.Text.ToUpper();
    }

C#写出的常见的应用程序类型

  • 控制台程序
  • Windows应用程序:WPF程序
  • Web应用程序:Mobile应用程序

好处:这几种应用程序只是编写环境不同,而编写代码几乎是一样的,所以编写的代码不用做太多修改就可以应用到不同的环境中去。

1、控制台应用程序

static void Main(string[] args)
 {
         Console.WriteLine("Hello");            
 }

注意:(1)按control+F5可以持续显示运行结果。

           (2)代码开头using 名称空间,比如using System。本来后面的代码是System.Console,在开头使用了名称空间后面就可以简写。

  • 程序的基本组成部分是类(class)。
  • Main()是程序的入口,固定的书写格式:public static void Main(string[] args)  可以没有public,也可以没有string[] args。
  • 或者按SVM键,再按两次Table即可生成Main。

2、Windows应用程序

  • 又称WinForm应用
  • VS.NET设计程序:(1)可视化的设计窗体(2)事件驱动的编程机制
  • C#学习笔记(一)

3、Web应用程序

  • 在.NET中也称为ASP.NET应用程序。
  • 应用程序在服务器上运行,客户端使用浏览器(如IE)来进行输入输出这种方式称为B/S方式(Browser/Server)方式。

 注意:(1)与传统的C/S(Client/Server)相区别。

            (2)B/S应用程序在使用、部署上有独特的优势。

步骤:新建——>Web里面的VS——>建一个空的web程序——>右击右侧的工程——>添加web窗体——>写代码或者点击设计同Windows——>点浏览器运行

程序中的输入与输出

1、计算平方根

private void button1_Click(object sender, EventArgs e)
        {
            double a = double.Parse(textBox1.Text);
            double result = Math.Sqrt(a);
            label1.Text = a + "的平方根是" + result.ToString();
        }

C#学习笔记(一)

2、控制台的输入与输出

 static void Main(string[] args)
        {
           string s = "";
           Console.Write("Please input a line: ");
           s = Console.ReadLine();
           Console.WriteLine("You have entered: {0}", s);
        }

C#学习笔记(一)

题目

1、按惯例,C#中的属性、方法、事件的首字母都大写     正确

2、编写事件,可以在属性窗口中找到“闪电”图标        正确

3、using名字空间的好处是后面可以简写        正确

4、一般说来,属性都是名词或形容词      正确

5、方法一般都用动词        正确

6、使用哪个函数可以修改颜色?    FromArgb()

7、随机数是用什么对象表示的    Random

8、切换到代码窗口按快捷键     F7

9、解析实数,可以用double的什么方法  

10、求平方根,可以用哪个函数     sqrt

11、计时器控件的时间间隔是用哪个属性表示的     Interval

12、解析整数,可以用int的什么方法     Parse

13、可以用哪个类表示数学相关的函数    Math

14、生成Main的方法,是按哪三个键,再按两次Table    SVM