02. C#基本

  • 数据类型

值类型:从类 System.ValueType 中派生

类型 描述 范围 默认值
bool 布尔值 True 或 False False
byte 8 位无符号整数 0 到 255 0
char 16 位 Unicode 字符 U +0000 到 U +ffff '\0'
decimal 128 位精确的十进制值,28-29 有效位数 (-7.9 x 1028 到 7.9 x 1028) / 100 到 28 0.0M
double 64 位双精度浮点型 (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 0.0D
float 32 位单精度浮点型 -3.4 x 1038 到 + 3.4 x 1038 0.0F
int 32 位有符号整数类型 -2,147,483,648 到 2,147,483,647 0
long 64 位有符号整数类型 -923,372,036,854,775,808 到 9,223,372,036,854,775,807 0L
sbyte 8 位有符号整数类型 -128 到 127 0
short 16 位有符号整数类型 -32,768 到 32,767 0
uint 32 位无符号整数类型 0 到 4,294,967,295 0
ulong 64 位无符号整数类型 0 到 18,446,744,073,709,551,615 0
ushort 16 位无符号整数类型 0 到 65,535 0

引用类型:

  1. 引用类型不包含存储在变量中的实际数据,只包含对变量的引用
  2. 引用对象指向一个内存位置
  3. 内置的 引用类型有:object、dynamic 和 string
  4. 对象类型object是c#中所有类的基类,故通过类型转换,object类型可以被分配其他类型的值
    装箱:将值类型转换为对象类型
    拆箱:将对象类型转换为值类型
  5. 动态类型dynamic可以存储任何类型的值
    对象类型变量的类型检查发生在编译时,而动态类型的类型检查是在运行时
  6. 字符串类型string派生自object类,通过"引号实现(@可实现原始字符串类型)

指针类型:
指针类型存储指向数据的内存地址

using System;

namespace CSharpBasic {
    public class CSharp{
        static void Main (String[] args) {
            /*数据类型:*/
            //值类型
            int a = 3;
            double b = 3.45;
            float c = 2.33f;
            Console.WriteLine("int:{0}\tdouble:{1}\tfloat:{2}",a,b,c);
            //引用类型
            object d = 129;//装箱,对象类型
            dynamic e = 133;//动态类型
            string f = "JianShu";//字符串
            string g = @"
                object d = 129;//装箱,对象类型
                dynamic e = 133;//动态类型
                string f = 'JianShu';//字符串";
            Console.WriteLine("object:{0}\tdynamic:{1}\tstring:{2}",d,e,f);
            Console.WriteLine("@string:{0}",g);
        }
    }
}
F:\Jn\C#\CSHARP>csharp_basic
int:3   double:3.45     float:2.33
object:129      dynamic:133     string:JianShu
@string:
                object d = 129;//装箱,对象类型
                dynamic e = 133;//动态类型
                string f = 'JianShu';//字符串

  • 类型转换

  1. 隐式类型转换:C# 默认的以安全方式进行的转换,,不会导致数据丢失
    例:从小的整数类型转换为大的整数类型,从派生类转换为基类
  2. 显式类型转换:显式类型转换,即强制类型转换
    显式转换需要强制转换运算符,而且强制转换可能会造成数据丢失
  3. c#提供的类型转换方法如下:
方法 描述
ToBoolean 如果可能的话,把类型转换为布尔型
ToByte 把类型转换为字节类型
ToChar 如果可能的话,把类型转换为单个 Unicode 字符类型
ToDateTime 把类型(整数或字符串类型)转换为 日期-时间 结构
ToDecimal 把浮点型或整数类型转换为十进制类型
ToDouble 把类型转换为双精度浮点型
ToInt16 把类型转换为 16 位整数类型
ToInt32 把类型转换为 32 位整数类型
ToInt64 把类型转换为 64 位整数类型
ToSbyte 把类型转换为有符号字节类型
ToSingle 把类型转换为小浮点数类型
ToString 把类型转换为字符串类型
ToType 把类型转换为指定类型
ToUInt16 把类型转换为 16 位无符号整数类型
ToUInt32 把类型转换为 32 位无符号整数类型
ToUInt64 把类型转换为 64 位无符号整数类型
using System;

namespace CSharpBasic {
    public class CSharp{
        static void Main (String[] args) {
            /*类型转换 */
            int h = 12;
            double i = 17.9;
            float j = 12.4f;
            bool k = true;
            Console.WriteLine("(int)i:{0}",(int)i);
            Console.WriteLine("h.ToString():{0}\ti.ToString():{1}\tj.ToString():{2}\tk.ToString:{3}",h,i,j,k);
            Console.WriteLine(Convert.ToString(12.562));
        }
    }
}
(int)i:17
h.ToString():12 i.ToString():17.9       j.ToString():12.4       k.ToString:True
12.562

  • 常量

  1. 常量和变量的基本规则一致,只是常量一旦定义,则不会能再更改其值
  2. 常量通过关键字const实现
using System;

namespace CSharpBasic {
    public class CSharp{
        static void Main (String[] args) {
            /*用户输入 */
            Console.Write("Please enter a number : ");
            Console.WriteLine(Convert.ToInt32(Console.ReadLine()));
            /*常量 */
            const int l = 12;
            Console.WriteLine("const:{0}",l);
        }
    }
}
Please enter a number : 123
123
const:12

  • 运算符

  1. 算数运算符
    加:+ 减:- 乘:* 除:/ 取余:% 自增:++ 自减:--
  2. 关系运算符
    等于:== 不等于:!= 大于:> 大于等于:>= 小于:< 小于等于:<=
  3. 逻辑运算符
    逻辑与:&& 逻辑或:|| 逻辑非:!
  4. 位运算符
    按位与:& 按位或:| 按位取反:! 按位异或:^ 按位左移:<< 按位右移:>>
  5. 赋值运算符
    = += -= *= /= %= <<= >>= &= ^= |=
  6. 其他运算符
    sizeof():返回数据类型的大小
    typeof():返回类的类型
    &:占位符,返回变量的地址
    *:指针
    ?::条件表达式
    is:判断对象是否为某一类型
    as:强制转换,转换失败也不抛异常
  7. 优先级

  • 判断语句

if;else;else if;switch...case;?:


  • 循环语句

while;for;foreach;do...while;break;continue


你可能感兴趣的:(02. C#基本)