概述
文章目录
- 输出
- 为了避免闪退现象
- system命名空间
- 控制台输出
- console.write(),console.writeline()
- 使用索引输出,索引号必须从0开始不间断顺延
- 只能输出object数组,其他数组不可以
- 输出数组元素的指定位置
- 控制台输入
- ReadKey()方法
- Read()方法
- ReadLine()方法
- .NET Framework
- 基本语法
- 解决方案文件和项目文件以及类文件之间的关系
- 常量与变量
- 引用类型与值类型
- 常量与变量
- 值类型与引用类型的区别
- 数据类型
- object类型
- dynamic类型
- 装箱和拆箱
- 数据类型之间的转换
- 使用convert进行任意类的转换
- 日期和时间
- 全局唯一标识符
- 运算符
输出
Console.WriteLine("Hello C#");
为了避免闪退现象
第一种:
Console.ReadLine();
用户输入回车键关闭
第二种:
Console.ReadKey();
用户输入一个字符后关闭
system命名空间
using system类似于using namespace
c#中输入输出函数都包含在system的类,所以使用输入输出函数必须使用system 类。(对比c++中的iostream)
控制台输出
console.write(),console.writeline()
console.write(),console.writeline()都是system.console这个类的方法,都是用于输出。
两者区别在于:
console.writeline()有无参数都可,而且语句执行结束,光标移动到目前输出字符串的下一行。
console.write()至少有一个参数。语句结束光标在输出字符串的最后一个字符。
使用索引输出,索引号必须从0开始不间断顺延
string name = "李明";
int age = 18;
char sex = '男';
Console.WriteLine("姓名:{0}t性别:{1}t年龄:{2}t", name, sex, age);
只能输出object数组,其他数组不可以
Console.WriteLine("输出数组");
object[] i = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9}", i);
Console.ReadLine();
输出数组元素的指定位置
Console.WriteLine("数组元素");
char[] c = { 'A', 'B', 'C', 'D', 'E', 'F', 'G' };
Console.WriteLine(c, 2, 4);
Console.ReadLine();//从下标为2,一直输出到4,每次输出一个
控制台输入
ReadKey()方法
读取单个字符。
Read()方法
读取单个字符
ReadLine()方法
读取一串字符串
.NET Framework
.NET Framework是一套语言独立的应用程序开发框架,主要的特点在于简化应用程序的开发复杂性,提供一个一直的开发模型,可以选择任何支持.NET的编程语言进行应用程序开发。
.NET Framework主要有两个部分组成:CLR 公共语言运行库和.NET Framework类库
C#是面向.NET Framework的语言,除了C# ,F#也是一样的。.NET Framework 看做航空母舰,C#就是航空母舰上的飞机。
基本语法
using MK = System.Console;//命名空间的别名
MK.WriteLine("命名空间的别名");
解决方案文件和项目文件以及类文件之间的关系
vs创建一个项目后生成一个文件。文件包括后缀名为.sln的解决方案文件和
同名文件夹,解决方案文件又包括后缀名为.csproj的项目文件和后缀名为.cs的类文件,可以通过记事本打开的。
对于简单的变量,一般采用驼峰命名法。
常量与变量
字符常量的输出类似于:
Console.WriteLine('a');
注意对转义字符的输出。
对于字符串的输出:
第一种:加双引号,
第二种:在字符串前面加@表示取消字符串中的转义。也可以表示字符串可以分为多行书写。
例如:
Console.WriteLine(@"d:rootsubdir");
相当于
Console.WriteLine("C:\root\subdir");
如果要在@字符串中包含双引号,双倍添加即可
Console.WriteLine(@"""captain!""");
多行书写:
string str3 = @"<script type=""text/javascript"">
<!--
-->
</script>";
Console.WriteLine(str1);
Console.WriteLine(str2);
Console.WriteLine(str3);
定义一个常量如:
const double PI = 3.14159;
完整代码:
const double PI = 3.14159;
double r;
Console.WriteLine("请输入半径:");
r = Convert.ToDouble(Console.ReadLine());//将输入的字符串转换为数值
double s = PI * r * r;
Console.WriteLine("半径为:{0}, 面积为: {1}n", r, s);
int num;
num = Convert.ToInt32(Console.ReadLine());//将用户输入的数据转化为int数据类型
引用类型与值类型
//值类型
int a = 0;
int b = a;
b = 100;
Console.WriteLine("a={0} b={1} ", a, b);
//引用类型
A n1 = new A();
A n2 = n1;
n2.num = 200;
Console.WriteLine("n1={0} n2={1}", n1.num, n2.num);
结果如下:
a=0 b=100
n1=200 n2=200
所以对于引用类型两种变量可引用同一对象,对一个变量的操作会影响另外一个变量。
值类型就是一个包含实际数据的量。当定义一个值类型的变量时,c#会根据它所声明的类型,以栈方式分配一个大小相适应的存储区域给这个变量。
引用类型的变量不存储它们的实际数据,而是存储实际数据的引用。引用类型创建分两步走,首先在栈上创建一个引用变量,在堆上创建对象本身,然后将内存的句柄(首地址)赋给引用变量。
常量与变量
两者区别:变量就是在运行过程中发生变化的量,常量是不发生变化的量。
常量的优点:第一,易于阅读,增强可读性
第二,常量是静态的,不用声明为static类型
值类型与引用类型的区别
第一,值类型的数据存储在内存的栈中。引用类型中,堆中只是存储实际数据,栈中存储的是指向堆中数据的地址。
第二,值存取速度快,引用类型存取速度慢。
第三,值类型是一个实际数据,引用类型其实是一个地址。
第四,值类型集成自System.ValueType ,引用类型集成自system.object
第五,栈的内存分配是自动释放,而堆在.NET中会有垃圾回收来释放。
使用值类型和引用类型时,对内存有哪些影响?
在设计一个应用程序时,如果都是引用类型,那么应用程序的性能将显著下降,因为这会加大托管堆的压力,增加托管堆的压力。虽然值类型是一个轻量级,但是如果大量使用值类型,也会有损于应用程序的性能。
由于值类型实例的值是自己本身,所以将一个值类型的变量赋值另一个值类型的变量,会执行一次逐字段的复制。
引用类型实例的值是一个引用,将引用类型的变量赋值给另一个引用类型的变量时,只需要复制内存地址。
所以对对象进行赋值时要避免使用值类型
数据类型
值类型是抽象类型system.valuetype的直接派生类,system。valuetype 又是直接从system.objectp派生的
object类型
引用类型的关键字为object,可以将所有类型的值赋给object类型。但是在分配值之前,需要先进行类型转换。
object类型其实就是一个万能类型。
object name, age, sex, height;
name = "周红";
age = 18;
sex = '女';
height = 180;
Console.WriteLine("姓名:{0}t年龄: {1}t身高: {2}t性别: {3}t",name,age,sex,height);
dynamic类型
装箱和拆箱
装箱拆箱是值类型和引用类型之间相互转换时要执行的操作。
装箱是值类型向引用类型转换时发生。
object obj=1;
常量是值类型,值类型是要放到栈上的。而object是引用类型,需要放在堆上。所以执行装箱操作不可避免地要在堆上申请内存空间。并且将堆栈上的值类型数据赋值到申请的堆内存空间上,这肯定要消耗内存和CPU。
拆箱是引用类型向值类型转换时发生。
object obj=5;//先执行装箱操作
int value=(int)obj;
拆箱操作与装箱操作与之相反。
数据类型之间的转换
使用convert进行任意类的转换
针对于两个变量不可兼容 比如string和int类型
1.数值型转换为字符型
int num = 10;
string str = num.ToString();
Console.WriteLine(str);
2.字符串转换为数值型
int.parse()
double.parse()
float.parse()
注意parse的参数只能是字符串,并且只有表示成数字的字符串才能进行转换。
日期和时间
通过DateTime这个类来获取当前的时间
string dt = DateTime.Now.ToString();
Console.WriteLine("测试当前时间:{0}", dt);
Console.WriteLine("{0}", DateTime.Now.ToString("d"));//短日期模式
Console.WriteLine("{0}", DateTime.Now.ToString("D"));//长日期模式
Console.WriteLine("{0}", DateTime.Now.ToString("f"));//长日期和短时间模式
Console.WriteLine("{0}", DateTime.Now.ToString("yyyy"));//四位年份
Console.WriteLine("{0}", DateTime.Now.ToString("MMMM"));//两位月份
Console.WriteLine("{0}", DateTime.Now.ToString("dd")); //日数
Console.ReadLine();
上面只是举几个例子,不是很全面。
全局唯一标识符
GUID主要的目的是产生完全唯一的数字,唯一缺陷在于生成的结果串会比较大。
通过使用NewGuid方法,生成GUID
运算符
-
^ 位逻辑异或运算:相同为0,相异为1
-
为逻辑非运算
sizeof():用于获取值类型的字节大小,仅仅适用于值类型,不适合于引用类型。
typeof():将类型的信息当做字符串返回。
int size = sizeof(int);
Console.WriteLine(size);
Console.WriteLine("char类型的对象 {0}", typeof(char));
输出结果为:4
char类型的对象 System.Char
is as运算符
as运算符主要用于在兼容的引用类型之间执行转换。
Console.ReadLine();//用于接收用户的输入,输入类型默认为string
最后
以上就是勤奋星月为你收集整理的C#基本语法输出为了避免闪退现象system命名空间控制台输出控制台输入.NET Framework基本语法常量与变量数据类型数据类型之间的转换的全部内容,希望文章能够帮你解决C#基本语法输出为了避免闪退现象system命名空间控制台输出控制台输入.NET Framework基本语法常量与变量数据类型数据类型之间的转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复