C#组成部分如下
using 关键字表明程序使用的是给定命名空间中的名称,类似于Python中的import。也可以using namespace。
命名空间namespace的设计目的是提供一种让一组名称与其他名称分隔开的方式。在一个命名空间中声明的类的名称与另一个命名空间中声明的相同的类的名称不冲突。其次命名空间可以嵌套
namespace first
{
class name_1
{
public void func()
{
Console.WriteLine("命名空间1----");
}
}
}
namespace second
{
class name_2
{
public void func()
{
Console.WriteLine("命名空间2!!!");
}
}
}
class MainTest
{
static void Main(string[] args)
{
first.name_1 fc = new first.name_1();
fc.func();
second.name_2 sc = new second.name_2();
sc.func();
Console.ReadKey();
}
}
当使用using后,可以讲上述代码修改为
using first;
namespace first
{
class name
{
public void func()
{
Console.WriteLine("命名空间1----");
}
}
}
namespace second
{
...
}
class MainTest
{
static void Main(string[] args)
{
name fc = new name();//可以直接使用,但注意first和second只能using一个
fc.func();
second.name sc = new second.name();
sc.func();
Console.ReadKey();
}
}
在 C# 中,变量分为以下几种类型:
- 值类型(Value types)
- 引用类型(Reference types)
- 指针类型(Pointer types)
值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。sizeof(类型)返回该类型字节长度,常见类型有int char bool double float等。
using System;
namespace TypesLength
{
class type
{
static void Main(string[] args)
{
Console.WriteLine("bytes is {0}",sizeof(bool));
Console.WriteLine("bytes is {0}",sizeof(byte));
Console.WriteLine("bytes is {0}",sizeof(char));
Console.WriteLine("bytes is {0}",sizeof(decimal));
Console.WriteLine("bytes is {0}",sizeof(double));
Console.WriteLine("bytes is {0}",sizeof(float));
Console.WriteLine("bytes is {0}",sizeof(int));
Console.WriteLine("bytes is {0}",sizeof(long));
Console.ReadLine();
}
}
}
结果
引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。内置的 引用类型有:object、dynamic 和 string。
对象(Object)类型 是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类。Object 是 System.Object 类的别名。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。
当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱。
字符串(String)类型 允许您给变量分配任何字符串值。字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。
class Str
{
public string str = "www.baidu.com";
public string str1 = @"https:/www.baidu.com";
public string str2 = @"随便输入字符串=====
hahahahhahahahahahahhah----
ennenenennenen。。。。。。
";
}
指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针有相同的功能。
type* identifier;
C#类型转换
隐式类型转换和显式类型转换(又称强制类型转换)两种
ToBoolean | 转换为布尔型 |
ToByte | 转换为字节类型 |
ToChar | 转换为单个 Unicode 字符类型 |
ToDateTime | 把类型(整数或字符串类型)转换为 日期-时间 结构 |
ToDecimal | 把浮点型或整数类型转换为十进制类型 |
ToDouble | 把类型转换为双精度浮点型 |
ToInt16 | 把类型转换为 16 位整数类型 |
ToInt32 | 把类型转换为 32 位整数类型 |
ToInt64 | 把类型转换为 64 位整数类型 |
ToSbyte | 把类型转换为有符号字节类型 |
ToSingle | 把类型转换为小浮点数类型 |
ToString | 把类型转换为字符串类型 |
ToType | 把类型转换为指定类型 |
ToUInt16 | 把类型转换为 16 位无符号整数类型 |
ToUInt32 | 把类型转换为 32 位无符号整数类型 |
ToUInt64 | 把类型转换为 64 位无符号整数类型 |