.Net C#
文章平均质量分 59
.NET 基本语法介绍
厦门德仔
分享与交流:信息化建设、数字化转型、项目管理、流程梳理与再造、前后端开发、财务管理、数据库、网络、家庭教育与人生感悟等希望我的博客能带您愉快心情。
展开
-
[正则表达式]
1.去除括弧内的字符using System.Text.RegularExpressions;var majorname = "ATM0243(Dispaly)".Replace("(", "(").Replace(")",")");majorname = Regex.Replace(majorname.Replace("(", "(").Replace(")", ")"), @"\([...原创 2020-03-16 09:54:29 · 179 阅读 · 0 评论 -
String与string的区别
0. 问题: 1. C#到底是什么时候传引用?什么时候传值?2. String传值还是传引用3. string和String有什么区别?4. String为什么是Immutable,怎么实现的?以下查询结果以及我的理解:1. C#到底是什么时候传引用?什么时候传值?传值的情况 :Struct、Enumeration、Numeric(Integral/Floating/decimal)、b原创 2009-06-10 21:18:00 · 1790 阅读 · 0 评论 -
C#中的Main(String[] args)的意思
C# Main方法是 C# 控制台应用程序或窗口应用程序的入口点。应用程序启动时,C# Main 方法是第一个调用的方法。C# 中的Main()方法首字母必须大写,如果首字母小写就会产生编译错误,编译失败。C# Main方法有以下几条准则:Main()方法在C#里非常特殊,它是编译器规定的所有可执行程序的入口点。由于其特殊性,对Main()方法有以下几条准则:1.Main()方法必须封装在类或结构里来提供可执行程序的入口点。C#采用了完全的面向对象的编程方式,但C#中不可以有像C++那样的全局函数。原创 2010-11-22 10:08:00 · 6586 阅读 · 1 评论 -
C#常用数据类型
<br />1.整数类型:<br />代表一种没有小数点的整数数值,也就是我们小时候学习的整数,如0,-3902,38445.<br />C#语言中包含以下整数类型,他们之间的差异就是数值大小的范围不一致,每一种类型按照有无负号,分成了两种不同的版本。<br />sbyte 8 位有符号整数 定义的变量的取值范围从-128~127<br />byte 8 位有符号整数 定义的变量的取值范围从0~255<br />short 16位有符号整数 定义的变量的取值范围从-3原创 2010-11-22 10:11:00 · 1105 阅读 · 0 评论 -
C#实数类型
<br />数学中的实数不仅包括整数,而且包括小数。小数在C#中采用两种数据类型来表示:单精度(float)和双精度(double)。它们的差别在于取值范围和精度不同。<br />单精度:取值范围在正负1.5X10的负45次方到3.4X10的38次方之间,精度为7位数。<br />双精度:取值范围在正负5.0X10的负324到1.7X10的308次方之间,精度为15到16位数。<br />计算机对浮点数的运算速度大大低于对整数的运算。在对精度要求不是很高的浮点计算中,我们可以采用float型,而采用doub原创 2010-11-22 10:12:00 · 1304 阅读 · 0 评论 -
常量的定义和使用
<br />常量在任何一种编程语言中是非常重要的,常量和变量的不同之处在于,常量在整个应用程序中保持一个值,而变量根据需要可以赋予不同的值。常量在声明时必须与特定的数据类型相联系,语法如下:<br /><访问修饰符> const 数据类型 常量名称=常量值;<br />例如:const int minAge=10; const float pei=3.14;<br />注意:常量在声明时必须初始化,即给常量赋值,否则会出现编译错误。<br />using System;<br />class Program原创 2010-11-22 10:15:00 · 1113 阅读 · 0 评论 -
var类型的变量
<br />var类型是C#3.0版本中引入的一个新的用法,在之前的版本中没有。事实上,var仅仅是一个关键字,冻是一个新的数据类型,可以用var声明任何类型的局部变量,它只是负责告诉编译器,该变量需要根据初始化表达式来推断变量类型,并且只能是局部变量。语法如下:<br />var 变量名称=变量值;<br />下面的声明都是正确的:<br />var age=12;<br />var name="李四";<br />var flag=true;<br />上面的声明等同于下面的变量声明:<br />int原创 2010-11-22 10:15:00 · 1421 阅读 · 0 评论 -
c#算术运算符
<br />一、 算术运算符:<br />加 +<br />减 -<br />乘 *<br />除 / (整型的除法是不算小数点的,也就是说结果是整数,余数舍去了,求余数看下面)<br />求余数 %<br />加减乘好理解,整型的除法和求余数因为和我们平时习惯的计算不大一样,做个例子:<br />int i = 5, j = 2; <br />Console.WriteLine("算除法的结果:{0}",i/j); <br />Console.WriteLine("求余数的结果:{0}",i%j);<br原创 2010-11-22 10:16:00 · 1094 阅读 · 0 评论 -
c#比较运算符
<br />大于> 小于 < 等于 == 不等于 != 大于等于 >= 小于等于 <=<br /><br /><br />要注意的是等于是用了2个等号,区别于赋值的一个等号,初次学习编程的时候,经常会在判断等于时候少写一个等号变成赋值。<br /><br />比较型的运算返回的结果不是数字而是布尔型的真和假。在C和VBS中,用0表示假,非0表示真。在c#中不能这样操作,参考下面的代码,这个代码在c中是正确的,在c#中运行会错误,提示你常原创 2010-11-22 10:16:00 · 1210 阅读 · 0 评论 -
c#逻辑运算符
<br />C#逻辑运算符有三种:逻辑与"&&",逻辑或"||",逻辑非"!"<br />using System;<br />class Progarm{<br />static void Main(){<br />bool flag=true;<br />bool myfalse=false;<br />Console.WriteLine("true && false is {0}",flag&&myfalse);<br />Console.WriteLine("true && true is {0}"原创 2010-11-22 10:17:00 · 1229 阅读 · 0 评论 -
C#自加和自减运算符
<br />如果在赋值语句中,自加运算符在变量的前面,那么变量先加1,然后赋值,称为运算前增量。<br />如果自加运算符在变量的后边,那么先赋值,然后再加1,称为运算后增量。<br />自减运算符表示把变量的值减1,用法与自加运算符相同。<br />using System;<br />class Program{<br />public static void Main(){<br />int a=6;<br />int b=8;<br />Console.WriteLine("a++等于{0}",a+原创 2010-11-22 10:17:00 · 1383 阅读 · 0 评论 -
c#三元运算符
<br />C#中有一个三元运算符“?:”,语法为:条件表达式?表达式1:表达式2;<br />该操作首先求出条件表达式的值(bool类型),为true时调用表达式1,为flase时调用表达式2。其逻辑为:“如果为真执行第一个,否则执行第二个。”<br />例如:<br />a=3>4?:3:4;输出为4。<br />a=3<4?:3:4;输出为3。<br />using System;<br />class Program{<br />static void Main(){<br />int i1=10,原创 2010-11-22 10:17:00 · 3272 阅读 · 2 评论 -
C#全部简化运算符
<br />C#全部简化运算符<br /><br />x++, ++x 等价于x = x + 1<br /><br />x--,--x 等价于x = x –1<br /><br />x+= y 等价于 x = x + y<br /><br />x–= y 等价于x = x – y<br /><br />x *= y 等价于x = x * y<br /><br />x /= y 等价于x = x / y<br /><br />x %= y 等价于x = x % y<br /><br />原创 2010-11-22 10:18:00 · 1091 阅读 · 0 评论 -
运算符的优先级和结合性
<br />当表达式中包含多个运算符时,运算符的优先级控制各运算等的计算顺序。如x+y*z,按x+(y*z)计算。<br />当一个操作数出现在两个相同优先级的运算符时,这些运算符的运算顺序取决于其结合性,结合性指运算符在表达式中从左到右或从右到左右的运算顺序。<br />赋值运算符和条件运算符(?:)按右结合原则。<br />除此之外,所有二元运算符都是左结合的,运算按从左到右的顺序执行。<br />在写运算符时,在写表达式的时候,如果无法确定运算符的有效顺序,则尽量采用括号来保证运算顺序。<br />运原创 2010-11-22 10:18:00 · 1222 阅读 · 0 评论 -
C#值类型和引用类型
<br />所有的数据在C#中都可以最为两种基本数据类型:值类型和引用类型。<br />什么是值类型呢,值类型数据存储在内存的栈中,可以提供快速访问。如果变量是值类型的,如果变是理企类型的,这个变量就包含实际数据,在一个内存区域保存自己的值。如果在代码中修改其值后,在内存中会保存修改的值。C#的整型,字符型,浮点型,布尔型等都属于值类型。结构,枚举也属于值类型。<br />引用类型指向存储在内存堆中的数据的指针和引用。引用类型总是指向一个对象,而且这个对象具有指定的类型,并且在堆上分配了地址。字符串,数组,原创 2010-11-22 10:19:00 · 841 阅读 · 0 评论 -
值类型和引用类型的最基本的区别是什么?
<br />C#将类型分为两类,一类是值类型,另一类是引用类型。大部分固有的基本类型(如整型,浮点型)是值类型,结构类型也是值类型。引用类型包括类、接口、数组和字符串。基本的概念非常简单,那就是一个值类型的实例代表了实际的数据(存在栈中),而一个引用类型的实例代表指向数据的指针或者引用(存在堆中)。<br /><br />在C#中是这样的:<br />int x1 = 3; // x1是堆栈上的值 <br />int x2 = new int(); <br />x2 = 3; // x2还是堆栈原创 2010-11-22 10:19:00 · 936 阅读 · 0 评论 -
既然 int是值类型,而 class是引用类型,那么int是怎样从Object派生的呢?
是这样的,当int用作int时候,这是一个值类型(在栈上),然而,当它用作是Object时,这是一个引用堆上的整数值的引用类型。换而言之,当你将int看作对象时,运行层将它自动转化为对象引用,这个转化过程称作装箱(boxing)。这个转换包括将栈里的值拷贝到了堆里,并且新建了一个对象的实例来引用该值。拆箱操作(unboxing)是个反过程——将对象转化为基于栈的值类型。<br />int x = 3; <br />// 堆栈上新的int类型,值为3<br />object objx = x;原创 2010-11-22 10:20:00 · 1343 阅读 · 0 评论 -
详解C#装箱与拆箱
<br />装箱(box)就是将值类型转换为引用类型的过程。而相反的过程就叫拆箱(unbox)。<br />一、装箱操作<br /> <br />例如: <br />int val = 100; <br />object obj = val; <br />Console.WriteLine (“对象的值 = {0}", obj); <br />这是一个装箱的过程,是将值类型转换为引用类型的过程。<br />值类型被装箱时发生了什么?<br />(1)在堆上分配内存。因为值类型最终有一个对象代表,所有堆上原创 2010-11-22 10:20:00 · 967 阅读 · 0 评论 -
C#装箱拆箱
<br />C#中的数据类型包括值类型、引用类型和指针类型,而指针类型只有在不安全代码中使用。值类型包括简单类型、结构和枚举,引用类型包括类、接口、委托、数组和字符串等。为了保证效率,值类型是在栈中分配内存,在声明时初始化才能使用,不能为NULL,而引用类型在堆中分配内存,初始化时默认为NULL。值类型超出作用范围系统自动释放内存,而引用类型是通过垃圾回收机制进行回收。由于C#中所有的数据类型都是由基类System.Object继承而来的,所以值类型和引用类型的值可以相互转换,而这转换过程也就是所谓的装箱和原创 2010-11-22 10:21:00 · 846 阅读 · 0 评论 -
C#数组-什么是数组
<br />现在有一个班的学生姓名需要存储,根据前面学过的方法,需要定义与这个班人数相同的变量来分别存储每一个学生的姓名。如下代码:<br />string student1="张三";<br />string student1="李四";<br />string student1="王五";<br />string student1="赵六";<br />……<br />string student1="刘九";<br />这种方法虽然能够实现我们的目标,但是很麻烦。如果有成千上万的学生也用同样的方式去实原创 2010-11-22 10:21:00 · 1109 阅读 · 0 评论 -
C#数组-数组的初始化
<br />数组和变量一样,在使用时必须对其进行初始化,即给变量或数组赋值。数组可以在定义时初始化,也可以在使用时初始化。下面的代码演示了如何初始化数组。<br />int[] arrayInt={1,2,3,4}<br />也可以用下面方式初始化数组:<br />int[] arrayInt;<br />arrayInt=new int{1,2,3,4}<br />初始化数组还可将前面的方式组合起来,用这种方式初始化数组时,数组的大小必须与元素个数相同。如下所示:<br />int[] arrayInt=原创 2010-11-22 10:21:00 · 1423 阅读 · 0 评论 -
C#数组-使用数组的索引
<br />定义的每个数组中有很多元素,如何有效地组织这些元素呢?其实每个数组元素都有一个编号,叫做数组索引,有时也称为数组下标。C#中数组的索引是从0开始的,最大索引等于数组长度减1。假设一个数组的长度为0,其索引从0开始,到n-1为止。C#通过索引来访问数组中的元素。<br />using System;<br />class Program<br /> {<br /> static void Main(string[] args)<br /> {<br />原创 2010-11-22 10:22:00 · 3297 阅读 · 0 评论 -
C#枚举-避免不合理赋值
<br />什么是枚举?<br />一年只能有12个月,每个星期只能从星期一到星期日,不能有别的日子,这些都是固定的值,不能随意变动。C#中处理这些数据就可以采用枚举。<br />枚举是一组已经命名的数值常量,用来定义一组具有特定值的数据类型,枚举的定义方法如下:<br /><访问修饰符> enum 枚举名称{枚举对象}<br />public enum DayWeek<br />{<br />Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday<原创 2010-11-22 10:22:00 · 1707 阅读 · 0 评论 -
C#中数据类型转换-隐式转换
<br />隐式转换:一般是低类型向高类型转化,能够保证值不发生变化。<br />隐式数值转换:<br /><br />从 sbyte 到 short、int、long、float、double 或 decimal。 <br />从 byte 到 short、ushort、int、uint、long、ulong、float double 或 decimal。<br />从 short 到 int、long、float、double 或 decimal。<br />从 ushort 到 int、uint、lo原创 2010-11-22 10:23:00 · 1490 阅读 · 0 评论 -
C#中数据类型转换-显式转换
<br />显示类型转换,也称强制类型转换。通过显示数据转换,可以把取值范围大的数据转换为取值范围小的数据。<br />using System;<br />class ConvertTest{<br />static void Main(){<br />int num1=3;<br />float num2=num1;<br />double num3=45.24;<br />int num4;<br />num4=num1*(int)num3;<br />Console.WriteLine("整数类型转原创 2010-11-22 10:23:00 · 1121 阅读 · 0 评论 -
C#数据类型转换-数值字符串和数值之间的转换
<br />首先,我们得搞明白,什么是数值字符串。我们知道,在 C# 中,字符串是用一对双引号包含的若干字符来表示的,如 "123"。而 "123" 又相对特殊,因为组成该字符串的字符都是数字,这样的字符串,就是数值字符串。<br />在我们的眼中,"123"即是一串字符,也是一个数,但计算机却只认为它是一个字符串,不是数。因此,我们在某些时候,比如输入数值的时候,把字符串转换成数值;而在另一些时候,我们需要相反的转换。<br />将数值转换成字符串非常简单,因为每一个类都有一个 void ToString原创 2010-11-22 10:24:00 · 1495 阅读 · 0 评论 -
用Convert类实现数据类型转换
<br />Convert类用于将一个基本数据类型转换为另一个基本数据类型,返回与指定类型的值等效的类型;受支持的基类型是Boolean、Char、SByte、Byte、Int16、Int32、Int64、UInt16、UInt32、UInt64、Single、Double、Decimal、DateTime和String。可根据不同的需要使用Convert类的公共方法实现不同数据类型的转换。所执行的实际转换操作分为以下3类:<br />(1)从某类型到它本身的转换只返回该类型,不实际执行任何转换。<br /原创 2010-11-22 10:24:00 · 2017 阅读 · 0 评论 -
C#控制台的输入和输出-Console类-输出到控制台
<br />C# 控制台程序一般使用 .NET Framework Console 类提供的输入/输出服务。我们多次用到Console.WriteLine方法,我们再学习一些其他的方法。<br />输出到控制台<br />输出到控制台就是把数据输出到控制台并显示出来, .Net框架提供了Console类实现这个任务,具体方式有以下几种:<br />Console.WriteLine();<br />Console.Write();<br />Console.WriteLine("输出的值");<br />C原创 2010-11-22 10:25:00 · 8005 阅读 · 0 评论 -
C#控制台的输入和输出-Console类-从控制台输入
<br />Console类提供的输入方法非常简单,语法如下:<br />Console.ReadLine();<br />Console.ReadLine()方法返回的是键盘输入string类型;<br />Console.Read()是把键盘输入的字符转化成ASC码;<br />以下代码返回一个字符串类型,可以把它直接赋给字符串变量。<br />string strname=Console.ReadLine();<br />有时从控制台输入数字,就用到前面的数据转换。例如:<br />int num=i原创 2010-11-22 10:26:00 · 1833 阅读 · 0 评论 -
C#条件判断-根据条件判断要走的路-if结构
<br />什么时候要用到if结构语句呢?如果有一个班的学生期末成绩不是很理想,原因是考题太难,教师希望根据学生平时的表现给不同学生加平时成绩分,条件如下:<br />如果平时每次都交作业,加20分;<br />如果平时交了超过所有作业的1/2,加15分;<br />其余同学每人加8分;<br />面对这样的问题,我们该怎样解决?<br />C# 的 if 语句有 3 种<br /><br />第一种<br />if (条件表达式)<br />{<br /> 满足条件时执行的语句;<br />}<br原创 2010-11-22 10:26:00 · 1699 阅读 · 0 评论 -
C#条件判断-if...else结构
<br />if...else结构就是经常说的“如果……就……否则就……”具体语法下:<br />if (条件)<br />{<br /> 满足条件时执行的语句;<br />}<br />else<br />{<br /> 不满足条件时执行的语句;<br />}<br />提示:if...else判断语句适用于只有两个条件的情况,即或者符合条件,或者不符合。<br />我们看下面这个例子:<br />using System;<br />class Hello {<br /> public原创 2010-11-22 10:28:00 · 1115 阅读 · 0 评论 -
C#条件判断-多重if结构
<br />多重if结构的语法如下:<br />if (条件)<br />{<br /> 满足条件时执行的语句;<br />}<br />else if (条件2)<br />{<br /> 满足条件2时执行的语句;<br />}<br />else if (条件3)<br />{<br /> 满足条件3时执行的语句;<br />}<br />else<br />{<br /> 不满足以上任何条件时执行的语句;<br />}<br />请看下面这个例子。<br />让我们想像这么一幕原创 2010-11-22 10:28:00 · 3795 阅读 · 0 评论 -
C#条件判断-嵌套if结构
<br />我们在上面的商店中,如果是商店会员可以享受打折优惠,非会员没有优惠。这个问题怎样解决呢?我们用前面的知识就不能解决,需要用到复杂的嵌套。其语法如下:<br />if(表达式1)<br />{<br /><br />if(表达式2)<br />{<br />代码块1<br />}<br />else<br />{<br />代码块2<br />}<br /><br />else<br />{<br />代码块3<br />}<br />我们看这个例子:<br />using System;<br原创 2010-11-22 10:29:00 · 1216 阅读 · 0 评论 -
C#在多种条件下选择自己的路-swith结构
<br />C#中的switch结构和if结构一样都可以实现条件判断,只是适用的条件不同。switch结构主要用于多重条件switch的语法如下:<br />switch (condition)<br />{<br /> case 常量表达式1:<br /> condition == 常量表达式1 时执行的语句;<br /> break;<br /> case 常量表达式2:<br /> condition == 常量表达式2 时执行的语句;<br />原创 2010-11-22 10:29:00 · 1061 阅读 · 0 评论 -
C#条件语句常见错误
<br />常见错误实例:<br />问题:如果学生成绩高于90分,成绩优秀。在70-90之间良好,60-70合格,60分以下不合格。<br />static void Main()<br />{<br />int score=80;<br />if (score>=90)<br />{<br />Console.WriteLine("优秀");<br />}<br />else if(90>score>=70)<br />{<br />Console.WriteLine("良好");<br />}<br原创 2010-11-22 10:29:00 · 1381 阅读 · 0 评论 -
C#循环语句-先判断后执行-while循环
<br />while循环是一个标准的循环语句,先判断是否循环,如果满足条件就执行循环,不满足就跳出循环,执行循环体外的语句。语法如下:<br />while(条件表达式)<br />{<br />Do something;<br />计数器变化<br />}<br />using System;<br />class Sample{<br /> public static void Main() {<br /> int sum=0;<br /> int i=1;<br原创 2010-11-22 10:30:00 · 4424 阅读 · 1 评论 -
C#循环语句-先执行后判断-do...while循环
<br />do...while循环和while循环不同之处在于前者先执行,再判断条件,后者是判断,再执行,所以do...while循环不管是否满足条件,至少会执行一次代码块。语法如下:<br />do<br />{<br />Do something;<br />计数器变化<br />}while(条件表达式)<br />using System;<br />class test{<br /> public static void Main() {<br /> int sum=0;原创 2010-11-22 10:30:00 · 3121 阅读 · 0 评论 -
C#循环语句-先判断后执行的另一种方式-for循环
<br />for循环和while循环都是先判断后执行的方式,for循环的判断条件可以while复杂,常用在可以确定循环次数的情况下,语法如下:<br />for(初始化部分;条件部分;更新部分)<br />{<br />执行循环语句<br />}<br />for (int i = 0; i < 10; i++)<br /> {<br /> Console.WriteLine(i);<br /> }<br />for循环的3个表达式都可以省略,但是两个分号不能省略。例如:原创 2010-11-22 10:31:00 · 2824 阅读 · 0 评论 -
C#循环语句-简单利索的foreach循环
<br />简单利索的foreach循环<br />foreach循环用于遍历整个集合或数组,可以获取集合中的所有对象,循环条件不使用布尔表达式,foreach循环简单易用,代码简洁,语法如下:<br />foreach(数据类型 元素 in 集合或数组)<br />{<br />//代码块<br />}<br />利用foreach遍历数组示例<br />string[] cityName={"北京","上海","香港","广州","青岛"};<br />foreach (string str in ci原创 2010-11-22 10:31:00 · 1172 阅读 · 0 评论 -
continue语句的作用
continue语句的作用通常在循环语句与条件语句一起使用。在循环中碰到continue后,就会终止本次循环,不执行该循环中位于continue后面的任何语句。continue语句用于结束当次循环,进入下一个循环。for(var i=1;i原创 2010-11-22 10:32:00 · 11336 阅读 · 0 评论