C# 语言具备了面向对象语言的特征,即封装、继承、多态,并且添加了事件和委托,增强了编程的灵活性。
C# 语言是一种强类型语言,要求每个变量都必须指定数据类型。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using N1;
//bool 类型初始化时false
namespace Hello_World
{
class Program
{
static void Main(string[] args) //static 说明方法是一个静态方法,即这个方法属于类的本身。而不是这个类的特定对象。调用静态方法不能使用类的实例化对象,必须直接使用类名来调用。 如直接使用 Program.Main 。而不用 Program a=new Program(); a.Main();。。。。。。。。。。。。
{
int ls=927;
byte shj = 255;
float theMySum = 9.27F; //用F或f指定为float类型;
double myDou = 927d; //用d或D指定为double类型;
Console.WriteLine("ls={0}", ls);
Console.WriteLine("shj={0}", shj);
Console.ReadLine();
// AA oa =new AA() ;
// oa.myls();
// Console.WriteLine("Hello world");
// Console.ReadLine();
}
}
}
namespace N1
{
class A
{
public void myls()
{
Console.WriteLine("命名空间的使用用N1");
Console.ReadLine();
}
}
}
3.2.2 引用类型
1.多个引用类型变量可以引用同一对象,这种情况下,对一个变量的操作会影响另一个变量的所引用的同一对象。
2.从内存空间上看,值类型是在栈中操作,而引用类型则在堆中分配存储单元。
3.栈在编译时就分配好内存空间,在代码 中有栈的明确定义,
4.堆是程序运行中动态分配的内存空间,可以根据运行情况动态的分配内存大小。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test02
{
class Program
{
class C //创建一个类C
{
public int Value; //声明一个公共int类型的变量Value
}
static void Main(string[] args)
{
int v1 = 0; //声明一个int类型的变量v1,并初始化为0
int v2 = v1; //声明一个int类型的变量v2,并将v1赋值给v2
v2 = 927; //重新将变量v2赋值为927
C r1 = new C(); //使用new关键字创建引用对象
C r2 = r1; //使r1等于r2
r2.Value = 112; //设置变量r2的Value值
Console.WriteLine("Values:{0},{1}", v1, v2);//输出变量v1和v2
Console.WriteLine("Refs:{0},{1}", r1.Value, r2.Value);//输出引用类型对象的Value值
Console.ReadLine();
}
}
}
运行的结果是:
Values: 0,927
Refs:112,112
3.3 装箱和拆箱
将值类型转换为引用类型的过程叫做装箱,
将引用类型转换为值类型的过程叫做拆箱。
全局变量是在程序加载时就分配了内存,整个程序运行完才回收,
局部变量是在程序运行时才分配,这个方法执行完时就回收。所以尽可能少定义全局变量。
namespace Test07
{
class Program
{
static void Main(string[] args)
{
//调用for语句循环输出数字
for (int i = 0; i <= 20; i++) //for循环内的局部变量i
{
Console.WriteLine(i.ToString()); //输出0~20的数字
}
Console.ReadLine();
}
}
}
decimal L1 = 1981.00m; //声明decimal类型变量L1
decimal L2 = 1982.00m; //声明decimal类型变量L2
bool result; //声明bool类型变量result
//使result等于L1和L2进行相等运算后的返回值
result = L1 == L2; /....................................................................
Console.WriteLine(result);
string Str1 = "用一生下载你"; //声明一个字符串变量Str1
char Str2 = Str1[1]; //获取字符串Str1的第二个字符
char Str3 = Str1[2]; //获取字符串Str1的第三个字符
Console.WriteLine("字符串Str1中的第二个字符是:{0}", Str2); //输出第二个字符 是 一
Console.WriteLine("字符串Str1中的第三个字符是:{0}", Str3); //输出第三个字符 是 生