ASP.NET动态网站制作(19)-- C#(2)

前言:C#的第二次课,依旧讲解C#的基础知识。

内容

  1.GC:垃圾回收机制,可以回收托管模块中的垃圾。

  2.值类型和引用类型:

    (1)值类型:所有的数值类型都是值类型,如int,byte,short,long,char,bool,float,double,枚举。计算机最小的信息单位是byte(字节),一个字节是8位(bit),一个字母是一个字节。

    (2)引用类型:对象,string,object,数组。C#有两个内置的引用类型:object类型和string类型。object是所有类型的父类,可以将任何类型的值赋值给object类型的变量;string类型是字符串类型,该对象一旦创建,内容就不可以更改,它是不可变的。

   引用类型的实例化使用关键字new。

    (3)值类型是值的拷贝,引用类型是地址的引用。

    (4)变量都是存放在内存中的,内存中包含堆和栈。所有的值类型是存储在栈里的,值类型的赋值就是值的拷贝;引用类型的值是存储在堆里的,栈里面存放的是它的引用地址,引用类型的赋值,实际上就是地址的拷贝。

    (5)要去调用一个类里面的非静态成员(字段、方法),需要通过一个类的对象去调用:Person p1 = new Person(); p1.age=20;;若要去调用一个类里面的静态成员,只需要通过类去调用就行:Person.age = 20;。静态变量存储在静态区。

    (6)当实例化一个类的对象的时候,堆会将类里面所有的非静态成员(字段、方法)生成。如果出现“未将对象引用到对象的实例”异常,就是没有将对象实例化或者对象为空,其在堆里没有内容。

    (7)当去实例化一个类的对象时,首先会在堆里面检索该类的对象是否存在。,如果存在就会拷贝一份。

    (8)当一个类是静态类的时候,类里面所有的成员都是静态的。

  3.装箱、 拆箱:

    (1)装箱:把值类型转换成引用类型。

1 int i = 10;
2 string s = i.ToString();

    (2)拆箱:把引用类型转换成值类型。

1 string s = "10";
2 int i = Convert.ToInt32(s);

    (3)程序中应该尽可能地避免装箱和拆箱,因为这两个过程中可能会造成一些效率的损耗。

  4.常量、变量:变量包含静态变量、成员变量--全局变量、局部变量。

  5.数据类型转换:

    (1)隐式转换:低精度类型转为高精度类型,直接转。

1 int i = 9;
2 double d = i;

    (2)显式转换:高精度类型转换为低精度类型,必须指明要转换的目标类型,由于数据的差异,可能丢失部分数据。

1 double d = 12.34;
2 int i;
3 i = (int)d;

  6.运算符:

    (1)算术运算符:+,-,*,/,%,++,--。

    (2)赋值运算符:=,+=,-=,*=,/=,%=,??。

a=b??c;    // b 为 null 则 a=c,不为 null 则 a=b

    (3)关系运算符:==,!=,<,<=,>,>=。

    (4)逻辑运算符:!,&,|,^,&&,||。

    (5)优先级:一元运算符<二元运算符<关系运算符<逻辑运算符<赋值运算符。

  7.string类:

    (1)string可以看成是一个字符数组。

1 string s = "hello";
2 char[] c = s.ToCharArray();

    (2)str.Lenght表示字符串里面字符的个数。

    (3)字符串对象一旦被创建,这个对象就不能被修改。

    (4)在创建一个字符串对象的时候,会先去字符串数据池(在堆中)寻找是否有相同的字符串内容对象,如果有,就直接让变量指向这个对象,如果没有,就创建新的对象。

    (5)字符串常用的方法:

    Compare():比较两个字符串的大小。

Console.WriteLine(String.Compare("aa","bb"));

    返回值是-1。字符串比较的是ASCII码值的大小。

    Equals():判断两个字符串是否相同,若相同则返回true,否则返回false。

    StartsWith()/EndsWith():判断一个字符串是否以一个字符串开头或结尾,返回值是true或false。

    IndexOf()/LastIndexOf():某个指定的字符或者字符串第一次或者最后一次出现的位置。

    Substring():截取字符串。

    Insert():插入在指定位置的字符串。

    PadLeft()/PadRight():左侧或者右侧填充特定字符来达到指定的长度。

    Remove():删除制定长度的字符串。

    Trim()(移除所有前导空白和尾部空白)、TrimStart()(移除所有前导匹配项)、TrimEnd()(移除所有尾部匹配项)。

    copyTo():将指定数目的字符复制到字符数组指定位置去。

    Replace():替换方法。

后记:预习、复习,课外学习。

时间: 2025-01-04 20:35:30

ASP.NET动态网站制作(19)-- C#(2)的相关文章

ASP.NET动态网站制作(3)--css(2)

前言:css分为四次课讲完,第一节课内容见ASP.NET动态网站制作(2)--css(1),接下来的内容会涉及到定位.浮动.盒子模型(第二次课).css的具体应用(第三次课).css3(第四次课).今天的内容是关于css中定位.浮动以及盒子模型. 内容:CSS最核心的内容,围绕div标签展开. 1.做静态网页首先要考虑页面的布局,可用<div></div>来将网页分为不同的模块,就相当于盖房子一样. 2.<div></div>是一个块元素,与之相对应的还有行

ASP.NET动态网站制作(30)-- WEBService

前言:继续讲正则表达式,然后介绍一下webservice. 内容: 1.匹配QQ号的正则表达式:^[1-9]\d{4,10}$:匹配手机号的正则表达式:^(0|86)?(13|14|15|18)[0-9]{9}$:匹配身份证号的正则表达式:^[1-9][0-9]{14}([0-9]{2}[0-9Xx]?)$. 2.js里面的正则:使用test(). 3.C#里面的正则: 1 string strQQ=txtQQ.Text.Trim(); 2 bool b = Regex.IsMatch(strQ

ASP.NET动态网站制作(17)-- C#(1)

前言:用C#也有一年多了,基本上都是边用边学的,现在可以跟着老师系统的学习一下,感觉应该挺好的. 内容: 1.网站部署的相关内容:  (1)想要做一个网站,首先得去买一个域名,老师的域名是在美橙上买的.如果允许,可以把相应的.com,.cn,.net都注册掉,不然公司做大了就麻烦了.网站是放在服务器的硬盘上的,服务器的硬盘区域就叫做网站空间,所以买了域名之后就需要买网站空间.本地文件上传到网站空间上通过FTP上传.买的时候需要注意参数,最主要的看一下“支持语言”中的 .net 版本以及数据库.

ASP.NET动态网站制作(7)-- JS(2)

前言:这节课是JS的第二节课,主要是JS中的控制语句. 内容: 1.条件语句:  (1)比较操作符:==,!=,>,>=,<,<=.字符串大小写转换:toUpperCase().toLowerCase().  (2)逻辑运算符:&&(与运算).||(或运算).!(非运算).  (3)if语句:if(条件){...} else if(条件){...}else{...},注意if与else的匹配问题. if(iNum1>iNum2) { iNum3=iNum1;

ASP.NET动态网站制作(24)-- ADO.NET(3)

前言:ADO.NET的第三节课.今天主要讲SQL Helper. 内容: 1.DataReader和DataSet的区别: (1)DataReader是一行一行地读,且只能向前读:DataSet是一次性读取出来放到内存中,所以,DataReader读取速度更快,占用内存更低. (2)DataReader需要一直和数据库保持连接,DataSet读取完后即和数据库断开. (3)DataSet里面可以存储多个结果集(DataTable). (4)DataSet可以对数据进行缓存,而DataTable不

ASP.NET动态网站制作(13)-- JQ(5)

前言:jq的最后一节课,主要讲解应用, 内容: 1.会飞的li: HTML代码: 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 5 <title>会

ASP.NET动态网站制作(12)-- JQ(4)

前言:这节课接着上次课的继续讲. 内容:接上--> 1.jq元素样式设置:  (4)某个元素中是否含有某个css类别,返回布尔型:$("li:last").hasClass("myClass");  (5)直接获取.编辑内容:html(text);text(content); 1 $("p").click(function(){ 2 var sHtmlStr = $(this).html(); 3 $(this).text(sHtmlStr

ASP.NET动态网站制作(11)-- JQ(3)

前言:这节课主要是讲CSS作业,然后继续讲jQuery. 内容: 1.css作业讲解. 2.jq设置元素样式:  (1)添加.删除css类别:$("div").addClass("myClass1 myClass2");$("div").removeClass("myClass1");  (2)类间动态切换: 1 $(function(){ 2 $("p").click(function(){ 3 $(th

ASP.NET动态网站制作(21)-- C#(4)

前言:这节课是C#讲解的第四节课,主要围绕面向对象的三大特性展开.上节课已经把封装讲完了,这节课讲继承和多态. 内容: 1.继承:写程序的时候有些信息是公共的,可以将这些公共的信息写在父类里,增强代码的可复用性.  (1)class A : B,被继承的类称为基类或父类或超类,而继承得到的类称为子类或派生类.子类继承超类的状态和行为(字段和方法),同时也可以具有自己的特征.父类里面的私有成员,子类也是继承了的,只是没有访问权限,就像不知道密码的保险箱一样.  (2)A:B,B:C,则A:C.