第3章C#程序设计基础
数据类型
C# 中有两种类型:值类型、和引用类型
值类型的变量直接存储数据如:整形等
引用类型的变量存储数据的引用如:对象。
对于引用类型,两个变量可能引用同一个对象,因此对一个变量的操作可能影响另一个变量所引用的对象
如:
class Program
{
static void Main(string[] args)
{
A a, a1, a2;
a = new A();
a1 = a;
a2 = a;
a1.n = 33;
Console.ToString());
Console.Read();
}
}
class A
{
public int n = 0;
}
对于值类型,每个变量都有它们自己的数据存储空间,因此对一个变量的操作不可能影响另一个变量。
C# 的值类型进一步划分为简单类型、枚举类型和结构类型
C# 的引用类型进一步划分为类类型、接口类型、数组类型、和委托类型。
注:变量必须指定数据类型
数据类型
C# 中,任何类型值都可以按对象处理
值类型的值则通过执行装箱和拆箱操作按对象处理。
实现方法:C# 中的每个类型直接或间接地从object 类型派生。引用类型的值都被当作object来处理。
对于值类型,可以将int 值转换为object,处理之后在转换回int。
class Test
{
static void Main()
{
int i = 123;
object o = i; // Boxing
int j = (int)o; // Unboxing
}
}
数据类型
基本整型(int )
短整型(short)
整形长整型(long)
单字节整形(byte)
字符型(char)
简单类型单精度型(float)
实型
值类型双精度型(double)
布尔型(bool)
小数类型(decimal )
结构类型
枚举类型
整数类型
整型定义:就是变量的值为整数的类型
计算机语言中的整数跟数学上的整数定义有点差别,计算机语言中的整数有取值范围。
整数类型分类:
短字节型(Sbyte)、字节型(Byte)
短整型(Short)、无符号短整型(Ushort)
整型(Int)、无符号整型(Uint)、
长整型(Long)、无符号长整型(Ulong)。
注:
变量名称前面的“u”是“Unsigned”的缩写,不能在这些类型的变量中存储负号。
以上这些不同的整数类型可以用于存储不同范围的数值,占用不同的内存空间。
常量类型:
可以用数值加上后缀方法指定常量类型:
u后缀:uint 或者ulong类型
l后缀:long 或者ulong类型
ul后缀:ulong类型
f后缀:float类型
d后缀:double类型
m后缀:decimal类型
例如;12m
布尔型和字符类型
布尔型
类型说明符:bool
布尔类型值,True 与False 。如:
static void Main(string[] args)
{
bool b = true;
if (b)
{
Console.Write(b.ToString());
Console.Read();
}
}
字符类型
字符类型包括数字字符,英文字母、表达符号等
字符类型按照国际上公认的标准,采用Unicode字符集
字符类型
Unicode 是16位字符,占两个字节,以无符号16位整形存储,共65535个;可表示世界上已知多数的书面语言;
前128个与ASCII重叠。128-255表示拉丁字母,重音符号、货币符号等字符型变量定义
char mychar =‘x’;
Char mychar=(char)88;
Int char 需要强制转换
Char int,float,decimal 可以隐式转换
double n='3';
字符类型
\n 换行
\t 横向跳格
\v 竖向跳格
\b 退格
\r 回车
\f 走纸换页
\\ 反斜杠字符
\‘单引号
\“双引号
字符类型
字符型变量赋值方法
直接赋值:char ch=‘a’;
转义字符:char ch=‘\x61’;
强制转换:char ch=(char)97;
unicode码: char ch=‘\u0061’;
实数类型
实数类型分类
单精度(Float)
双精度(Double)
Decimal
选取原则:
对精度要求不高的计算中采用单精度型
而采用双精度的结果将更为精确
Decimal类型主要用于金融和货币的计算,精度更高
小数类型
c#提供了decimal类型,精度为28-29位有效数字,他没有无符号形式。
在精度很重要的场合,可以选择该类型。
浮点型和小数类型之间不能进行隐式转换,在一个表达式中不能同时用这两种类型。注:小数常数后必须跟着一个m或M
字符串
C#支持string类型。
C#把字符串当成对象,封装了所有字符串所拥有的操作、排序和搜索方法。
定义字符串方法
string s = "abcdef";
字符串
字符串中可以包含转义字符
如“\n”或“\t”
在字符串中使用反斜杠,必须在其前面再加一个反斜线。
(反斜线本身在目录路径中会用到)
如下面代码所示:
string directory = "C:\\text";
字符串
string类型变量可以看作是char变量的只读数组
可以使用下面的语法访问每个字符:
string myString = "abcdef";
char myChar= myString[1];
同时,我们还可以使用ToCharArray() 函数,把string类型的变量转存到字符数组里面。class Program
{
static void Main(string[] args)
{
string s = "abcdef";
char[] myChar = s.ToCharArray();
Console.WriteLine(“myChar输出如下:");
foreach(char c in myChar)
Console.WriteLine("{0}",c);
Console.ReadLine();
}
}
字符串
字符串的串接: 使用“+”符号
string city = "南京市";
string street = "新街口";
string address = city + street;
Console.WriteLine(“地址是:”+address);
输出结果:“地址是:南京市新街口”。
String类有很多方法和属性
常见的有:Length 属性、ToUpper/ToLower 方法、IndexOf 方法、SubString 方法等。字符串
Length属性
string str2=”you are welcome!”;
int n=str2.Length;
那么n就得到str2字符串的长度
ToUpper()方法
把字符串中所有的字母都变成大写
ToLower()方法
把字符串中所有的字母都变成小写
字符串
IndexOf()方法
从字符串出第一次出现某子字符串的位置
writeline输出数值变量string str1=”you are welcome”;
int n=str1.IndexOf(“are”);
那么n的值为4;
SubString ()方法
从字符串的n1个字符开始,长度为n2的子串
str1.SubString(n1,n2);
例题
static void Main(string[] args)
{
string s = "hello";
char[] ch = new char[] {'a','b' };
string ss = new string(ch);
StringBuilder stbd = new StringBuilder();
stbd.Append(s);
stbd.Append(ss);
stbd.Replace("ll", "kk", 5, 2);
s = stbd.ToString();
stbd.Remove(0, stbd.Length);
Console.Write(stbd);
Console.Read();
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论