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的知识. 理论知识看起来可能比较枯燥一些,但是我们的实践(敲代码)毕竟离不开它. 只有理论与实践相结 ...
随机推荐
- log4j:WARN No appenders could be found for logger 解决办法
转自:https://blog.csdn.net/chw0629/article/details/80567936 使用log4j时不起作用,每次执行完出现以下提示: log4j:WARN No ap ...
- 获取properties配置
1. 使用@Value @Value("${swagger.enable}") 使用Spring的PropertyPlaceholderConfigurer关联 @Val ...
- t讯src的一点小秘密
1.腾讯网首页发表评论未做限制 风险url:http://coral.qq.com/2774166934 使用burp的intruder模块生成payload 未做任何限制导致可批量提交大量的评论…… ...
- C# StopWatch的BUG????
//BUG?????? //使用StopWatch测试运行时间 //两段测试A和B //测试结果受测试顺序影响,后测要比先测耗时长了许多 static void TestKeyIntStr() { v ...
- linux运维笔记——curl
** 1.获取网站返回码 ** [root@Cacti ~]# curl -I www.qq.com HTTP/1.1 200 OK Server: squid/3.4.1 Date: Wed, 08 ...
- Java核心知识点 --- 线程中如何创建锁和使用锁 Lock , 设计一个缓存系统
理论知识很枯燥,但这些都是基本功,学完可能会忘,但等用的时候,会发觉之前的学习是非常有意义的,学习线程就是这样子的. 1.如何创建锁? Lock lock = new ReentrantLock(); ...
- spring bean单例注入与用单例模式通过class.getinstance()区别?
1.action的某个方法中,用以下代码获得redis单例实例 RedisDelegate redisDelegate = RedisDelegate.getInstance(); redisDele ...
- 解剖Nginx·自动脚本篇(3)源码相关变量脚本 auto/sources
在configure脚本中,运行完auto/options和auto/init脚本后,接下来就运行auto/soures脚本.这个脚本是为编译做准备的. 目录 核心模块 事件模块 OpenSSL 模块 ...
- ORM思想
-------------------siwuxie095 什么是 ORM 思想 1.Hibernate 使用 ORM 思想对数据库进行 CRUD 操作 2.ORM:Object Relational ...
- Web内容回顾
-----------------siwuxie095 Java EE 三层结构 1.Web 层:Struts2 框架 2.Service 层:Spring 框架 3.DAO 层:Hibernate ...