C#入门学习(一)

一、基本元素


1.类的实例

使用new操作符创建类的实例

2.属性、方法、事件

事件:C#特有,java用其他实现
事件机制需要善用,非常重要

3.事件event

    using System.Windows.Threading;  

4.C#命名规则

变量用骆驼法

     int countSalary;

方法、类用帕斯卡法

    Class Person
    {
    void DestroyBySelf(){}
    }

二、数据类型


数据类型

小内存容纳大尺寸数据会丢失精度,大内存容纳小尺寸数据会导致浪费

强类型与弱类型语言比较

***********C语言 *************

int x=100;
if(x=200)
{
printf("It is OK!");     //C语言没有bool值,x=200200赋给了x,也不是0,所以执行printf
} 

而在C#中,if条件里的值必须是bool类型,x=200不会编译通过,只能写x==200

********JavaScript ***********

 function ButtonClicked()
{
var myVar=100;
myVar="Hello,JavaScript!";
alert(myVar);      //这里会弹出Hello,JavaScript,尽管它之前是int类型。
}

C#中不允许这种情况出现,但用动态dynamic来达到这种效果
********C# *********************

dynamic myVar=100;
Console.WriteLine(myVar);
myVar="Hello,C#!";
Console.WriteLine(myVar);

三、类型系统


五大数据类型

类、结构体、枚举、接口、委托

派生谱系

Object —–引用类型—–类、接口、委托
Object —–值类型—–结构体、枚举

变量、对象与内存

表面上变量是储存数据,实际上,变量表示的是储存位置,每个变量都有一个类型,来决定什么样的值可以存入变量

———————7种变量———————–
  • 静态变量:属于类
  • 成员变量:字段
  • 数组元素:
int[] array=new int[100];  
  • 值参数、引用参数、输出形参:
public double Plus( double a,double b){ return a+b;}
  • 参数前面加ref为引用参数,加out为输出参数
  • 局部变量: 方法体里声明的变量
public double Plus( double a,double b)
{
    double result=a+b;
    return result;
}
—————变量声明—————–
  • 值类型的变量
    byte类型占1字节8位,2的8次方表示0~255
    sbyte类型占1字节8位,有1位是符号,2的7次方表示-128~127
  • 引用类型的变量:装的对象实例的内存地址
class Person
{
  public  int num;
  public  string str;
}
static void Main(string[] args)
{
  Person xiaoming;               //声明了xiaoming为变量名,内存中分配给xiaoming地址
  xiaoming= new Person();    //实例化了一个Person(),分配了num,str的内存,把内存地址给xiaoming
}

局部变量在栈stack上分配内存
- 常量

 const int x = 100; //不能改变,不能不初始化
装箱与拆箱
  • 装箱:
    从栈往堆里输送
    栈上的值类型封装成object类型的实例,放在堆上;Boxing装箱说法(值类型变量转换成引用类型);
  • 拆箱:
    从堆里往栈里输送
    堆上的object类型实例的值转换成所要求类型,放在栈上; Unboxing拆箱说法(引用类型变成值类型);

猜你喜欢

转载自blog.csdn.net/noEnoughChief/article/details/80640622
今日推荐