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. 七牛云存储的 Javascript Web 前端文件上传

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,七牛云存储的 Web 前端文件上传 七牛是不错的云存储产品,特别是有免费的配额可 ...

  2. Rhythmk 一步一步学 JAVA(7): jsp 自定义标签

    1.实现Tag接口: TagSupport类实现了Tag接口,为我们提供了4个重要的方法(见表6-5). 1.1. TagSupport类中的常用方法           int doStartTag ...

  3. log4j:WARN No appenders could be found for logger 解决办法

    转自:https://blog.csdn.net/chw0629/article/details/80567936 使用log4j时不起作用,每次执行完出现以下提示: log4j:WARN No ap ...

  4. delphi 选择文件夹,路径选择,浏览文件夹

    选择文件夹,路径选择, 文件夹 资源管理器 推荐  SelectDirectory http://docwiki.embarcadero.com/Libraries/Seattle/en/Vcl.Fi ...

  5. C#与U3D中字符串尾0

    static void TestChar0() {//注意字符串中0和\0的区别,如 s1="h0ello", s2 = "h\0ello" //s2中的\0是 ...

  6. 手动为 Team Foundation Server 安装 SQL Server

    本主题中的步骤适用于安装 SQL Server 2012 企业版,你也可以使用安装标准版的相同步骤. 适用于 SQL 2014 的步骤与以上步骤也非常相似. 我们将在 TFS 所在的同一服务器上安装 ...

  7. Excel VBA入门(一)数据类型

    与其它的编程语言一样,VBA也有它自己的数据类型.讲到数据类型,就离不开"变量"与"常量"这两个概念,变量与常量,都是用于保存数据的.顾名思义,"变量 ...

  8. IT 360服务器监控

  9. 解剖Nginx·自动脚本篇(1)解析配置选项脚本 auto/options

    在安装Nginx之前(即运行make脚本之前),首先是进行安装的配置准备,包括环境检查及生成文件.这些工作是由自动脚本完成的.和绝大多数软件一样,Nginx的自动脚本的入口,同样是名为configur ...

  10. Java-实体与集合转换

    import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector ...