C#基础入门 二
C#基础入门 二
循环语句
- 与C语言中用法相同。
- continue:结束本次循环(continue)后面的代码不再执行,进入下次循环(通常与if连用)。
数组
- 一维数组定义:
int[] intArray; - 一维数组初始化:定义后,必须对其初始化才能使用
- 动态初始化:数据类型[] 数组名=new 数据类型[数组长度]{元素1,元素2...};动态初始化借助new运算符为数组元素分配内存空间,并赋初值。
- 不给定初值情况下,各元素取默认值,数值型初始值为0,布尔型为false。
- 静态初始化:数据类型[] 数组名={元素1,元素2...}
- 得到数组长度:数组名.Length();得到的值即为数组的长度。
枚举
- 把可能出现的情况一一列举出来,可以使用enum关键字来声明枚举类型,它的值被限制在所列举出来的值中。
- 语法:enum 枚举类型名{枚举值1,枚举值2...},例如:
enum Season{spring,summer,autumn,winter}其中season相当于int,Season s=Season.summer; - 在内部,一个枚举为每个元素都关联了一个整数值,默认情况下编号从0开始,后面的编号都递增1,spring=0,summer=1...,也可以自己赋值,另外允许多个枚举指定同一个数据值。
结构体
- 是一种自定义数据类型,相当于复合型容器,可以存储多种类型的数据。
- 结构体的声明
struct 结构体名称
{
访问修饰符 结构类型 成员名称;
访问修饰符 结构类型 成员名称;
}
例子1:
public struct PersonStruct
{
public char sex;
public int age;
public float money;
}
例子2:
public struct PersonStruct
{
public char sex;
public int age;
public float score;
public string name;
} //定义结构体
public static void Main(string[] args)
{
int a;
PersonStruct per1;
per1.name = "zhangsan";
per1.sex='男';
Console.WriteLine("姓名:{0},性别:{1}", per1.name, per1.sex);
}
- 访问修饰符:所有类型和类型成员都具有访问级别,用来控制是否可以在当前程序集的其它代码或者其他程序集中使用它们
- public:同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类型或成员,访问不受限制;
- private:只有同一类或结构中的代码可以访问该类型或成员,访问仅限于包含类型;
- protected:只有同一类或结构或者此类的派生类中的代码才可以访问的类型或成员;
- internal:同一程序集中的任何代码都可以访问该类型或成员,但其他程序集中的代码不可以。
- 注意:直接在命名空间中命名的类和结构体(即没有嵌套在其他类和结构体中),访问修饰符只能是public和internal,如果没有指定修饰符,默认为internal。
引用类型
C#中有两种类型:引用类型和值类型。
引用类型的变量存储对其数据(对象)的引用,而值类型的变凉直接包含其数据。(图3)

装箱和拆箱:
- 装箱是将值类型转换为引用类型
- 拆箱是将引用类型转换为值类型
- 利用装箱拆箱功能,可通过允许值类型的任意类型与Object类型的值相互转换,将值类型与引用类型链接起来。
装箱操作:
int vel=10;//值类型
object obj=vel;//把数值类型转换为引用类型
Console.WriteLine("obj=" + obj);
- 拆箱操作
int val=100;
object o=val;
int d=(int)o;
string
- string的特殊性:string类型表示一个字符序列(零个或更多Unicode字符)。string是.Net Framework中String的别名。尽管string是引用类型,但定义相等运算符(== 和!=)是为了比较string对象的值,这使得对字符串相等性的测试更为直观。
- +在string中,是连接两个字符串用的,不是算术运算符。
- 字符串访问:
string str = "zhangxiaohan";
char c = str[4];
Console.WriteLine(c);
- 若要测试字符串是否为空,可以用
bool d = string.IsNullOrEmpty(str);
Console.WriteLine(d);
- 字符串方法(图4、5)


- 测试字符串是否包含所指定的字符串
bool t = str.Contains("zhang");
Console.WriteLine(t);
- 测试所包含字符串的类型:
int n = str.IndexOf("z");
Console.WriteLine(n);
打印出来n为0
- split:图6

string str2 = "zhang xiao han";
char[] c1 = { ' ' };
string[] strArray = str2.Split(c1);
foreach (string stri in strArray)
{
Console.WriteLine(stri);
}
- StringBuilder:string对象是不可改变的,每次是永System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该对象分配新的空间,如果需要多次修改,String的开销就十分大,于是有了System.Text.StringBuilder可以大大提升效率。
- 声明:
StringBuilder s1=new StringBuilder("new"); - shiyong1StringBuilder.Append来添加信息:
s1.Append("string");
C#基础入门 二的更多相关文章
- Swift语法基础入门二(数组, 字典, 字符串)
Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...
- JAVA之Mybatis基础入门二 -- 新增、更新、删除
上一节说了Mybatis的框架搭建和简单查询,这次我们来说一说用Mybatis进行基本的增删改操作: 一. 插入一条数据 1.首先编写USER.XML(表的xml)使用insert元素,元素写在map ...
- C#学习笔记---基础入门(二)
枚举 枚举是被命名的整型常数的集合:枚举类型的变量只有赋值后才能使用:不同枚举中的枚举值可以重名:可以自定义枚举值. enum Playstates { 跑, 跳,下滑,左转,右 ...
- Linux 基础入门二
1.远程连接 ssh协议:secure shell ~]# ss -tnl 查看系统是否监听在tcp协议的22号接口: ~]# ip addr list 或者 ifconfig 查看ip地址 确 ...
- Mybatis框架基础入门(二)--架构简介
mybatis配置 SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息. mapper.xml文件即sql映射文件,文件中配置了操作数据库的 ...
- [Spring框架]Spring AOP基础入门总结一.
前言:前面已经有两篇文章讲了Spring IOC/DI 以及 使用xml和注解两种方法开发的案例, 下面就来梳理一下Spring的另一核心AOP. 一, 什么是AOP 在软件业,AOP为Aspect ...
- [Spring框架]Spring AOP基础入门总结二:Spring基于AspectJ的AOP的开发.
前言: 在上一篇中: [Spring框架]Spring AOP基础入门总结一. 中 我们已经知道了一个Spring AOP程序是如何开发的, 在这里呢我们将基于AspectJ来进行AOP 的总结和学习 ...
- Linux 基础入门(新版)”实验报告一~十二
实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& ...
- PHP基础入门(二)---入门必备哦!
前言 在上一章中,我们初步了解了PHP的网页基础和PHP的入门基础,今天继续给大家分享更多有关PHP的知识. 理论知识看起来可能比较枯燥一些,但是我们的实践(敲代码)毕竟离不开它. 只有理论与实践相结 ...
随机推荐
- idea展现目录清晰方式
- Alternative PHP Cache ( APC )
简介: Alternative PHP Cache (APC) 是一个开放自由的PHP opcode 缓存.它的目标是提供一个自由.开放和健全的框架用于缓存和优化 PHP 的中间代码,加快 PHP 执 ...
- keepalived + nginx实现高可用
1. Keepalived介绍 Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat.corosync.pacemaker. ...
- shell编程——日志输出的同时显屏
在执行脚本的时候我们常常需要将执行过程全部输出到日志里,以备出现报错时可以跟踪分析,开始我用的是exec: exec 1>info.log #把全部执行过程输出到info日志中 exec 2&g ...
- Ajax 简单实例,其实就是js里面内容有些不同而已(转载)
这些时间,瞎子也看得见,AJAX正大踏步的朝我们走来.不管我们是拥护也好,反对也罢,还是视而不见,AJAX像一阵潮流,席转了我们所有的人. 关于AJAX的定义也好,大话也好,早有人在网上发表了汗牛充栋 ...
- 3D Math Keynote
[3DMathKeynote] 1.常用公式. 1)(A*B)^T = B^T*A^T. 2)(A*B)^-1 = B^-1*A^-1. 3)|A*B| = |A|*|B|. 4)|M^T|=|M ...
- shell-array
[shell-array] Creating Array: $ names=("Bob" "Peter" "$USER" "Big ...
- 【bzoj2242】[SDOI2011]计算器
2242: [SDOI2011]计算器 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 3207 Solved: 1258[Submit][Statu ...
- spring4-2-bean配置-4-bean之间的关系
- javascript运算符优先级顺序
1 ()2 !.-(负号).++.-- 3 *./.%4 +.- 10-55 <.<=.<.>=6 ==.!=.===.!==.7 &&8 ||9 ?:10 = ...