C#环境与数据类型

C#环境

.NET 框架

  C#是.NET框架的一部分,且用于编写.NET应用程序。.NET框架是一个创新的平台,可以编写Windows应用程序、web应用程序、web服务。

集成开发环境

  visual studio支持C#开发。

在这里插入图片描述

创建一个C#项目

在这里插入图片描述


using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

  运行结果为 Hello World! 。

数据类型

值类型
类型 描述
bool 布尔值
byte 8位无符号整数
decimal 128位精确的十进制值,28-29有效位数
double 64位双精度浮点型
float 32位单精度浮点型
int 32位有符号整型
long 64位有符号整型,长整型
sbyte 8位有符号整数
short 16位有符号整型,短整型
uint 32位无符号整型
ulong 64位无符号整型
ushort 16位无符号整型
char 16 位 Unicode 字符
using System;

namespace DataType
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Size of bool: {0}", sizeof(bool));
            Console.WriteLine("Size of byte: {0}", sizeof(byte));
            Console.WriteLine("Size of decimal: {0}", sizeof(decimal));
            Console.WriteLine("Size of double: {0}", sizeof(double));
            Console.WriteLine("Size of float: {0}", sizeof(float));
            Console.WriteLine("Size of int: {0}", sizeof(int));
            Console.WriteLine("Size of short: {0}", sizeof(short));
            Console.WriteLine("Size of long: {0}", sizeof(long));
            Console.WriteLine("Size of sbyte: {0}", sizeof(sbyte));
            Console.WriteLine("Size of uint: {0}", sizeof(uint));
            Console.WriteLine("Size of ulong: {0}", sizeof(ulong));
            Console.WriteLine("Size of ushort: {0}", sizeof(ushort));
        }
    }
}

在这里插入图片描述

引用类型

  内置的引用类型有:object、dynamic和string

对象类型object

  object是C#的通用类型中所有数据类型的终极基类(父类),所以object类型就可以被分配任何类型的值。但是在分配值之前需要先进行类型转换。当一个值类型被转变为对象类型时,被称为装箱;反之,一个对象类型转变为一个值类型是,被称为拆箱。

动态类型dynamic

  可以存储任何类型的值,编译器会自动检测数据类型。

dynamic <variable_name> = value;

namespace DataType
{
    class Program
    {
        static void Main(string[] args)
        {
            dynamic test1 = 10;
            dynamic test2 = 1.5;
            dynamic test3 = 'a';
            dynamic test4 = "hello world";
            Console.WriteLine("test type is: {0}", test1.GetType());
            Console.WriteLine("test type is: {0}", test2.GetType());
            Console.WriteLine("test type is: {0}", test3.GetType());
            Console.WriteLine("test type is: {0}", test4.GetType());
        }
    }
}

在这里插入图片描述

字符串类型string

  字符串类型从对象类型中派生,可以分配任何字符串值。有两种分配形式:引号和@引号。@引号的分配形式被称为逐字字符串,转义字符、换行符、缩进空格等都会被挡住普通字符对待。

namespace DataType
{
    class Program
    {
        static void Main(string[] args)
        {
            string str1 = "\\adc\t1";
            string str2 = @"\\adc\t1";
            string str3 = @"\\adc\t1 z
1
2
3";
            Console.WriteLine("str1: {0}", str1);
            Console.WriteLine("str2: {0}", str2);
            Console.WriteLine("str3: {0}", str3);
        }
    }
}

在这里插入图片描述

指针类型

  和C/C++中的指针类型一样,存放一个数据的地址。

type* pointername

类型转换

隐式转换

  不需要代码指定的转换,一般是低精度向高精度的转换。

显示转换(强制转换)

  代码中显示的写明要转换的数据类型,一般是高精度向低精度转换,或者是一个对象类型转变成另外一个数据类型。显示转换可能会出现精度丢失、数据丢失的情况。

namespace DataType
{
    class Program
    {
        static void Main(string[] args)
        {
            // 隐式转换
            int a = 10;
            double b = a;

            // 显示转换
            int c = 256;
            byte d = (byte)c;

            double e = 1.2345;
            int f = (int)e;

            Console.WriteLine("b type is:{0},b = {1}", b.GetType(), b);
            Console.WriteLine("d type is:{0},d = {1}", d.GetType(), d);
            Console.WriteLine("f type is:{0},f = {1}", f.GetType(), f);
        }
    }
}

在这里插入图片描述

  隐式转换时,将类型转换为long时,数据类型可能还是int32,因为long没有明确的长度定义,只是说他至少是32位。

C#提供的类型转换方法
Convert类

  convert提供了一组静态方法,用于基本数据类型之间的转换。

方法 描述
Convert.ToBoolean(value) 将类型转换为布尔类型
Convert.ToByte(value) 将类型转换为Byte类型
Convert.ToChar(value) 将类型转换为Char类型
Convert.ToDateTime(value) 将类型转换为DateTime类型
Convert.TDecimal(value) 将类型转换为Decimal类型
Convert.ToDouble(value) 将类型转换为double类型
Convert.ToInt16(value) 将类型转换为短整型
Convert.ToInt32(value) 将类型转换为整型
Convert.ToInt64(value) 将类型转换为长整型
Convert.ToSByte(value) 将类型转换为SByte类型
Convert.ToSingle(value) 将类型转换为单精度浮点型
Convert.ToString(value) 将类型转换为字符串类型
Convert.ToUInt16(value) 将类型转换为无符号短整型
Convert.ToUInt32(value) 将类型转换为无符号整型
Convert.ToUInt64(value) 将类型转换为无符号长整型
Parse方法

  parse方法用于将字符串转换为对应的数值类型,如果转换失败会抛出异常。

方法 描述
Boolean.Parse(string) 将字符串解析为布尔类型
Convert.ToByte(value) 将类型转换为Byte类型
Char.Parse(string) 将类型转换为Char类型
DateTime.Parse(string) 将类型转换为DateTime类型
Decimal.Parse(string) 将类型转换为Decimal类型
Double.Parse(string) 将类型转换为double类型
Int16.Parse(string) 将类型转换为短整型
Int32.Parse(string) 将类型转换为整型
Int64.Parse(string) 将类型转换为长整型
SByte.Parse(string) 将类型转换为SByte类型
Single.Parse(string) 将类型转换为单精度浮点型
UInt16.Parse(string) 将类型转换为无符号短整型
UInt16.Parse(string) 将类型转换为无符号整型
UInt64.Parse(string) 将类型转换为无符号长整型
TryParse方法

  类似于parse方法,但不会抛出异常,而是返回一个布尔值来表示是否返回成功。

方法 描述
Boolean.TryParse(string, out bool) 尝试将字符串解析为布尔类型,并返回转换结果是否成功
Byte.TryParse(string, out byte) 尝试将字符串解析为Byte类型,并返回转换结果是否成功
Char.TryParse(string, out char) 尝试将字符串解析为Char类型,并返回转换结果是否成功
DateTime.TryParse(string, out DateTime) 尝试将字符串解析为DateTime类型,并返回转换结果是否成功
Decimal.TryParse(string, out decimal) 尝试将字符串解析为Decimal类型,并返回转换结果是否成功
Double.TryParse(string, out double) 尝试将字符串解析为Double类型,并返回转换结果是否成功
Int16.TryParse(string, out short) 尝试将字符串解析为Int16类型,并返回转换结果是否成功
Int32.TryParse(string, out int) 尝试将字符串解析为Int32类型,并返回转换结果是否成功
Int64.TryParse(string, out int) 尝试将字符串解析为Int64类型,并返回转换结果是否成功
SByte.TryParse(string, out sbyte) 尝试将字符串解析为SByte类型,并返回转换结果是否成功
Single.TryParse(string, out float) 尝试将字符串解析为Single类型,并返回转换结果是否成功
UInt16.TryParse(string, out ushort) 尝试将字符串解析为UInt16类型,并返回转换结果是否成功
UInt32.TryParse(string, out uint) 尝试将字符串解析为UInt32类型,并返回转换结果是否成功
UInt64.TryParse(string, out ulong) 尝试将字符串解析为UInt64类型,并返回转换结果是否成功

相关推荐

  1. C#基础知识 - 变量、常量数据类型

    2024-07-12 21:04:02       57 阅读
  2. 二、C#基础语法( 变量数据类型

    2024-07-12 21:04:02       52 阅读
  3. C语言数据类型

    2024-07-12 21:04:02       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 21:04:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 21:04:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 21:04:02       57 阅读
  4. Python语言-面向对象

    2024-07-12 21:04:02       68 阅读

热门阅读

  1. PyTorch 1-深度学习

    2024-07-12 21:04:02       21 阅读
  2. pip install selenium异常

    2024-07-12 21:04:02       19 阅读
  3. PostgreSQL 导入 .gz 备份文件

    2024-07-12 21:04:02       19 阅读
  4. 力扣 225题 用队列实现栈 记录

    2024-07-12 21:04:02       21 阅读
  5. python爬虫js逆向入门

    2024-07-12 21:04:02       26 阅读
  6. vue3+ts 引入 json-editor-vue3 报错

    2024-07-12 21:04:02       19 阅读
  7. jar服务注册为windows的服务

    2024-07-12 21:04:02       14 阅读
  8. C++:创建线程

    2024-07-12 21:04:02       27 阅读
  9. python 知识点累积

    2024-07-12 21:04:02       22 阅读
  10. C语言——循环结构:while、do...while、for

    2024-07-12 21:04:02       22 阅读
  11. 简单有效防止CDN被盗刷流量

    2024-07-12 21:04:02       17 阅读