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#基础入门 二的更多相关文章

  1. Swift语法基础入门二(数组, 字典, 字符串)

    Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...

  2. JAVA之Mybatis基础入门二 -- 新增、更新、删除

    上一节说了Mybatis的框架搭建和简单查询,这次我们来说一说用Mybatis进行基本的增删改操作: 一. 插入一条数据 1.首先编写USER.XML(表的xml)使用insert元素,元素写在map ...

  3. C#学习笔记---基础入门(二)

    枚举 枚举是被命名的整型常数的集合:枚举类型的变量只有赋值后才能使用:不同枚举中的枚举值可以重名:可以自定义枚举值. enum Playstates {            跑, 跳,下滑,左转,右 ...

  4. Linux 基础入门二

    1.远程连接  ssh协议:secure shell  ~]# ss -tnl 查看系统是否监听在tcp协议的22号接口:  ~]# ip addr list 或者 ifconfig 查看ip地址 确 ...

  5. Mybatis框架基础入门(二)--架构简介

    mybatis配置 SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息. mapper.xml文件即sql映射文件,文件中配置了操作数据库的 ...

  6. [Spring框架]Spring AOP基础入门总结一.

    前言:前面已经有两篇文章讲了Spring IOC/DI 以及 使用xml和注解两种方法开发的案例, 下面就来梳理一下Spring的另一核心AOP. 一, 什么是AOP 在软件业,AOP为Aspect ...

  7. [Spring框架]Spring AOP基础入门总结二:Spring基于AspectJ的AOP的开发.

    前言: 在上一篇中: [Spring框架]Spring AOP基础入门总结一. 中 我们已经知道了一个Spring AOP程序是如何开发的, 在这里呢我们将基于AspectJ来进行AOP 的总结和学习 ...

  8. Linux 基础入门(新版)”实验报告一~十二

    实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& ...

  9. PHP基础入门(二)---入门必备哦!

    前言 在上一章中,我们初步了解了PHP的网页基础和PHP的入门基础,今天继续给大家分享更多有关PHP的知识. 理论知识看起来可能比较枯燥一些,但是我们的实践(敲代码)毕竟离不开它. 只有理论与实践相结 ...

随机推荐

  1. Flask之模板

    2 了解Jinja2模板 知识点 模板使用 变量 过滤器 web表单 控制语句 宏.继承.包含 Flask中的特殊变量和方法 3.1 模板 在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简 ...

  2. DBCA Does Not Display ASM Disk Groups In 11.2

    DBCA Does Not Display ASM Disk Groups In 11.2 https://oraclehowto.wordpress.com/2011/08/15/dbca-does ...

  3. python算法之快速排序

    快速排序 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所 ...

  4. JDBC模板对象是多例的

  5. 拼接sql

    String whereArgs = taskTable + " where 1=1 "; if (upCheck) { whereArgs += " and type ...

  6. 从零开始搭建k8s-20180301

    yum install -y yum-utils git etcd yum-config-manager --add-repo https://download.docker.com/linux/ce ...

  7. 【LA2238 训练指南】固定分区内存管理 【二分图最佳完美匹配,费用流】

    题意 早期的多程序操作系统常把所有的可用内存划分为一些大小固定的区域,不同的区域一般大小不同,而所有区域的大小之和为可用内存的大小.给定一些程序,操作系统需要给每个程序分配一个区域,使得他们可以同时执 ...

  8. Unity中Avatar换装实现

    http://www.cnblogs.com/herenzhiming/articles/6533162.html

  9. opencv3.4 win10 visual studio2017 opencv_contrib 编译

    found Intel IPP (ICV version): 2017.0.3 [2017.0.3] at: D:/opencv/opencv_3_4_0/opencv/my_build/3rdpar ...

  10. pkg-config的妙用

    1.每个lib下都会有个pkg-config文件夹,里面有相应pc文件 修改里面内容可以改变pkg-config显示 2.将.pc文件所在路径添加到PKG_CONFIG_PATH中如: export ...