ASPnetC基本語法B篇程序結構、運算符_第1頁
ASPnetC基本語法B篇程序結構、運算符_第2頁
ASPnetC基本語法B篇程序結構、運算符_第3頁
ASPnetC基本語法B篇程序結構、運算符_第4頁
ASPnetC基本語法B篇程序結構、運算符_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.ASP net C 根本語法 B篇 程序結構、運算符第一章ASP.net C#根本語法B篇程序構造、運算符、運算優(yōu)先級2020-02-08 19:21第一章ASP.net C#根本語法B篇程序構造、運算符、運算優(yōu)先級在上一部分中我們做了一個簡單的ASP.net的程序,但是簡單中真的簡約嗎?VS2020的模板提供了那些東西呢?單位如今需要計算很多的數(shù)字。如何實現(xiàn)呢?豆豆做了一個計算公式。做的是"驚天地泣鬼神"啊!可是結果!算出來一個怪胎!這不郁悶著呢!本章目的:理解程序模板的構造,可以使用運算符,詳細剖析和純熟掌握運算的優(yōu)先級本章構造第一部分:工程構造先看圖新建立的ASP.

2、net怎么有這么多東西?沒有?你建立一個ASP.net工程,按Ctrl+Alt+L看看如今解讀一下里面的工程VS2020里面模板帶的頁面比VS以前的版本要多很多,構造更加的明晰了。希望大家保持這種明晰的方式來做頁面注意:沒一個aspx都帶一個aspx.cs,其中aspx頁面實現(xiàn)前臺的頁面顯示,也就是閱讀器看到的內容。前臺提交的處理由后臺的aspx.cs進展處理,其處理過程閱讀器是看不到的,這樣很有效的進步的程序的平安性和邏輯性。第二部分:程序構造如以以下圖:第三部分:運算符一、方括號用于數(shù)組、索引器和屬性,也可用于指針。1、數(shù)組類型是一種后跟的類型:int fib=new int100;/創(chuàng)立

3、一個有100元素的數(shù)組假設要訪問數(shù)組的一個元素,那么用方括號括起所需元素的索引:fib0=fib1=1;forint i=2;i 100;+ifibi=fibi-1+fibi-2;/假設數(shù)組索引超出范圍,那么會引發(fā)異常。2、不能重載數(shù)組索引運算符;但類型可以定義采用一個或多個參數(shù)的索引器和屬性。索引器參數(shù)括在方括號中就像數(shù)組索引一樣,但索引器參數(shù)可聲明為任何類型這與數(shù)組索引不同,數(shù)組索引必須為整數(shù)。例如,.NET Framework定義Hashtable類型,該類型將鍵和任意類型的值關聯(lián)在一起。Collections.Hashtable h=new Collections.Hashtable;

4、h"a"=123;/note:using astring as the index 3、方括號還用于指定屬性C#編程指南:attributeAllowMultiple=truepublic class Attr 4、可以使用方括號來指定指針索引:unsafe fixedint*p=fib/p points to fib from earlier example p0=p1=1;forint i=2;i 100;+ipi=pi-1+pi-2;二、除了用于指定表達式中的運算順序外,圓括號還用于指定強迫轉換或類型轉換:double x=1234.7;int a;a=intx;/c

5、ast double to int三、.點運算符.用于成員訪問。點運算符指定類型或命名空間的成員。例如,點運算符用于訪問.NET Framework類庫中的特定方法:System.Console.WriteLine"hello";四、:命名空間別名限定符運算符:,用于查找標識符。它通常放置在兩個標識符之間,例如:global:System.Console.WriteLine"Hello World";備注:命名空間別名限定符可以是global。這將調用全局命名空間中的查找,而不是在別名命名空間中。五、+運算符既可作為一元運算符也可作為二元運算符。備注:一

6、元+運算符是為所有數(shù)值類型預定義的。對數(shù)值類型進展一元+運算的結果就是操作數(shù)的值。為數(shù)值類型和字符串類型預定義了二元+運算符。對于數(shù)值類型,+計算兩個操作數(shù)之和。當其中的一個操作數(shù)是字符串類型或兩個操作數(shù)都是字符串類型時,+將操作數(shù)的字符串表示形式串聯(lián)在一起。委托類型也提供二元+運算符,該運算符執(zhí)行委托串聯(lián)。using System;class MainClass static void MainConsole.WriteLine+5;/unary plus Console.WriteLine5+5;/addition Console.WriteLine5+.5;/addition Conso

7、le.WriteLine"5"+"5";/string concatenation Console.WriteLine5.0+"5";/string concatenation/note automatic conversion from double to string六、-運算符既可作為一元運算符也可作為二元運算符。一元-運算符是為所有數(shù)值類型預定義的。數(shù)值類型的一元-運算的結果是操作數(shù)的反數(shù)。二元-運算符是為所有數(shù)值類型和枚舉類型預定義的,其功能是從第一個操作數(shù)中減去第二個操作數(shù)。委托類型也提供二元-運算符,該運算符執(zhí)行委托移除

8、。using System;class MainClass static void Mainint a=5;Console.WriteLine-a;Console.WriteLinea-1;Console.WriteLinea-.5;七、*乘法運算符*,用于計算操作數(shù)的積。另外還用作取消引用運算符,允許讀取和寫入指針。備注:所有數(shù)值類型都具有預定義的乘法運算符。*運算符還用來聲明指針類型和取消引用指針。該運算符只能在不平安的上下文中使用,通過unsafe關鍵字的使用來表示,并且需要/unsafe編譯器選項。取消引用運算符也稱為間接尋址運算符。using System;class MainCla

9、ss static void MainConsole.WriteLine5*2;Console.WriteLine-.5*.2;Console.WriteLine-.5m*.2m;/decimal type八、/除法運算符/用第二個操作數(shù)除第一個操作數(shù)。所有數(shù)值類型都具有預定義的除法運算符。using System;class MainClass static void MainConsole.WriteLine-5/2;Console.WriteLine-5.0/2;九、%模數(shù)運算符%計算第二個操作數(shù)除第一個操作數(shù)后的余數(shù)。所有數(shù)值類型都具有預定義的模數(shù)運算符。using System;cl

10、ass MainClass static void MainConsole.WriteLine5%2;/int Console.WriteLine-5%2;/int Console.WriteLine5.0%2.2;/double Console.WriteLine5.0m%2.2m;/decimal Console.WriteLine-5.2%2.0;/double十、&&運算符既可作為一元運算符也可作為二元運算符。備注:一元&運算符返回操作數(shù)的地址要求unsafe上下文。為整型和bool類型預定義了二進制&運算符。對于整型,&計算操作數(shù)的邏輯按位&q

11、uot;與"。對于bool操作數(shù),&計算操作數(shù)的邏輯"與";也就是說,當且僅當兩個操作數(shù)均為true時,結果才為true。&運算符計算兩個運算符,與第一個操作數(shù)的值無關。例如:int i=0;iffalse&+i=1十一、|二元|運算符是為整型和bool類型預定義的。對于整型,|計算操作數(shù)的按位"或"結果。對于bool操作數(shù),|計算操作數(shù)的邏輯"或"結果;也就是說,當且僅當兩個操作數(shù)均為false時,結果才為false。using System;class MainClass static void

12、MainConsole.WriteLinetrue|false;/logical or Console.WriteLinefalse|false;/logical or Console.WriteLine"0x0:x",0xf8|0x3f;/bitwise or十二、二元運算符是為整型和bool類型預定義的。對于整型,將計算操作數(shù)的按位"異或"。對于bool操作數(shù),將計算操作數(shù)的邏輯"異或";也就是說,當且僅當只有一個操作數(shù)為true時,結果才為true。using System;class MainClass static void

13、 MainConsole.WriteLinetruefalse;/logical exclusive-or Console.WriteLinefalsefalse;/logical exclusive-or/Bitwise exclusive-or:Console.WriteLine"0x0:x",0xf80x3f;十三、!邏輯非運算符!是對操作數(shù)求反的一元運算符。為bool定義了該運算符,當且僅當操作數(shù)為false時才返回true。using System;class MainClass static void MainConsole.WriteLine!true;Con

14、sole.WriteLine!false;十四、運算符對操作數(shù)執(zhí)行按位求補運算,其效果相當于反轉每一位。按位求補運算符是為int、uint、long和ulong類型預定義的。using System;class MainClass static void Mainint values=0,0x111,0xfffff,0x8888,0x 22000022;foreachint vin valuesConsole.WriteLine"0x0:x8=0x1:x8",v,v;十五、=賦值運算符=將右操作數(shù)的值存儲在左操作數(shù)表示的存儲位置、屬性或索引器中,并將值作為結果返回。操作數(shù)的

15、類型必須一樣或右邊的操作數(shù)必須可以隱式轉換為左邊操作數(shù)的類型。using System;class MainClass static void Maindouble x;int i;i=5;/int to int assignment x=i;/implicit conversion from int to double i=intx;/needs cast Console.WriteLine"i is0,x is1",i,x;object obj=i;Console.WriteLine"boxed value=0,type is1",obj,obj.G

16、etType;i=intobj;Console.WriteLine"unboxed:0",i;十六、所有數(shù)值和枚舉類型都定義"小于"關系運算符,假設第一個操作數(shù)小于第二個操作數(shù),該運算符返回true,否那么返回false。using System;class MainClass static void MainConsole.WriteLine1 1.1;Console.WriteLine1.1 1.1;十七、所有數(shù)值類型和枚舉類型都定義"大于"關系運算符,假設第一個操作數(shù)大于第二個操作數(shù),它將返回true,否那么返回false。us

17、ing System;class MainClass static void MainConsole.WriteLine1.1 1;Console.WriteLine1.1 1.1;十八、?:條件運算符?:根據(jù)布爾型表達式的值返回兩個值中的一個。條件運算符的格式如下condition?first_expression:second_expression;備注:假設條件為true,那么計算第一表達式并以它的計算結果為準;假設為false,那么計算第二表達式并以它的計算結果為準。只計算兩個表達式中的一個。使用條件運算符,可以更簡潔、雅觀地表達那些否那么可能要求if-else構造的計算。例如,為在s

18、in函數(shù)的計算中防止被零除,可編寫為ifx!=0.0s=Math.Sinx/x;else s=1.0;或使用條件運算符,s=x!=0.0?Math.Sinx/x:1.0;十九、+增量運算符+將操作數(shù)加1。增量運算符可以出如今操作數(shù)之前或之后:備注:第一種形式是前綴增量操作。該操作的結果是操作數(shù)加1之后的值。第二種形式是后綴增量操作。該運算的結果是操作數(shù)增加之前的值。數(shù)值類型和枚舉類型具有預定義的增量運算符。用戶定義的類型可重載+運算符。在枚舉時通常允許整型運算。/cs_operator_increment.cs using System;class MainClass static void

19、Maindouble x;x=1.5;Console.WriteLine+x;x=1.5;Console.WriteLinex+;Console.WriteLinex;二十、-減量運算符-將操作數(shù)減1。減量運算符可以出如今操作數(shù)之前或之后:-variable和variable-。第一種形式是前綴減量操作。該運算的結果是操作數(shù)減小"之后"的值。第二種形式是后綴減量操作。該運算的結果是操作數(shù)減小"之前"的值。備注:數(shù)值類型和枚舉類型具有預定義的增量運算符。用戶定義的類型可重載-運算符請參見運算符。在枚舉時通常允許整型運算。/cs_operator_decre

20、ment.cs using System;class MainClass static void Maindouble x;x=1.5;Console.WriteLine-x;x=1.5;Console.WriteLinex-;Console.WriteLinex;二十一、&&條件"與"運算符&&執(zhí)行其bool操作數(shù)的邏輯"與"運算,但僅在必要時才計算第二個操作數(shù)。備注:操作x&&y對應于操作x&y不同的是,假設x為false,那么不計算y因為不管y為何值,"與"操作的結果都為f

21、alse。這被稱作為"短路"計算。不能重載條件"與"運算符,但常規(guī)邏輯運算符和運算符true與false的重載,在某些限制條件下也被視為條件邏輯運算符的重載。例如在下面的例如中,請觀察使用&&的表達式只計算第一個操作數(shù)。using System;class MainClass static bool Method1Console.WriteLine"Method1 called";return false;static bool Method2Console.WriteLine"Method2 called&

22、quot;;return true;static void MainConsole.WriteLine"regular AND:";Console.WriteLine"result is0",Method1&Method2;Console.WriteLine"short-circuit AND:";Console.WriteLine"result is0",Method1&&Method2;二十二、|條件"或"運算符|執(zhí)行bool操作數(shù)的邏輯"或"運算

23、,但僅在必要時才計算第二個操作數(shù)。備注:操作x|y對應于操作x|y不同的是,假設x為true,那么不計算y因為不管y為何值,"或"操作的結果都為true。這被稱作為"短路"計算。不能重載條件"或"運算符,但規(guī)那么邏輯運算符和運算符true與false的重載,在某些限制條件下也被視為條件邏輯運算符的重載。例如在下面的例如中,請觀察使用|的表達式只計算第一個操作數(shù)。using System;class MainClass static bool Method1Console.WriteLine"Method1 called&qu

24、ot;;return true;static bool Method2Console.WriteLine"Method2 called";return false;static void MainConsole.WriteLine"regular OR:";Console.WriteLine"result is0",Method1|Method2;Console.WriteLine"short-circuit OR:";Console.WriteLine"result is0",Method1|

25、Method2;二十三、左移運算符將第一個操作數(shù)向左挪動第二個操作數(shù)指定的位數(shù)。第二個操作數(shù)的類型必須是int。備注:假設第一個操作數(shù)是int或uint32位數(shù),那么移位數(shù)由第二個操作數(shù)的低5位給出。假設第一個操作數(shù)是long或ulong64位數(shù),那么移位數(shù)由第二個操作數(shù)的低6位給出。第一個操作數(shù)的高序位被放棄,低序空位用0填充。移位操作從不導致溢出。用戶定義的類型可重載運算符請參見operator;第一個操作數(shù)的類型必須為用戶定義的類型,第二個操作數(shù)的類型必須為int。重載二元運算符時,也會隱式重載相應的賦值運算符假設有。例如using System;class MainClass stat

26、ic void Mainint i=1;long lg=1;Console.WriteLine"0x0:x",i 1;Console.WriteLine"0x0:x",i 33;Console.WriteLine"0x0:x",lg 33;二十四、右移運算符將第一個操作數(shù)向右挪動第二個操作數(shù)所指定的位數(shù)。備注:假設第一個操作數(shù)為int或uint32位數(shù),那么移位數(shù)由第二個操作數(shù)的低五位給出第二個操作數(shù)&0x1f。假設第一個操作數(shù)為long或ulong64位數(shù),那么移位數(shù)由第二個操作數(shù)的低六位給出第二個操作數(shù)&0x3f。

27、假設第一個操作數(shù)為int或long,那么右移位是算術移位高序空位設置為符號位。假設第一個操作數(shù)為uint或ulong類型,那么右移位是邏輯移位高位填充0。用戶定義的類型可重載運算符;第一個操作數(shù)的類型必須為用戶定義的類型,第二個操作數(shù)的類型必須為int。有關更多信息,請參見operator。重載二元運算符時,也會隱式重載相應的賦值運算符假設有。例如using System;class MainClass static void Mainint i=-1000;Console.WriteLinei 3;二十五、=對于預定義的值類型,假設操作數(shù)的值相等,那么相等運算符=返回true,否那么返回fa

28、lse。對于string以外的引用類型,假設兩個操作數(shù)引用同一個對象,那么=返回true。對于string類型,=比較字符串的值。備注:用戶定義的值類型可重載=運算符請參見operator。用戶定義的引用類型也可重載=運算符,盡管在默認情況下,無論對于預定義的引用類型還是用戶定義的引用類型,=的行為都與上面描繪的一樣。假設重載=,那么還必須重載!=。在枚舉時通常允許整型運算。例如using System;class MainClass static void Main/Numeric equality:True Console.WriteLine2+2=4;/Reference equalit

29、y:different objects,/same boxed value:False.object s=1;object t=1;Console.WriteLines=t;/Define some strings:string a="hello";string b=String.Copya;string c="hello";/Compare string values of aconstant and an instance:True Console.WriteLinea=b;/Compare string references;/a is acons

30、tant but bis an instance:False.Console.WriteLineobjecta=objectb;/Compare string references,both constants/have the same value,so string interning/points to same reference:True.Console.WriteLineobjecta=objectc;二十六、!=假設操作數(shù)相等,那么不等運算符!=返回false,否那么,返回true。為所有類型包括字符串和對象預定義了不等運算符。用戶定義的類型可重載!=運算符。備注:對于預定義的值

31、類型,假設操作數(shù)的值不同,那么不等運算符!=返回true,否那么,返回false。對于string以外的引用類型,假設兩個操作數(shù)引用不同的對象,那么!=返回true。對于string類型,!=比較字符串的值。用戶定義的值類型可重載!=運算符請參見operator。用戶定義的引用類型也可重載!=運算符,盡管在默認情況下,無論對于預定義的引用類型還是用戶定義的引用類型,!=的行為都與上面描繪的一樣。假設重載!=,那么還必須重載=。在枚舉時通常允許整型運算。例如using System;class MainClass static void Main/Numeric inequality:Conso

32、le.WriteLine2+2!=4;/Reference equality:two objects,same boxed value object s=1;object t=1;Console.WriteLines!=t;/String equality:same string value,same string objects string a="hello";string b="hello";/compare string values Console.WriteLinea!=b;/compare string references Console

33、.WriteLineobjecta!=objectb;二十七、=所有數(shù)值和枚舉類型都定義了"小于等于"關系運算符=,假設第一個操作數(shù)小于或等于第二個操作數(shù),那么該運算符將返回true,否那么返回false。using System;class MainClass static void MainConsole.WriteLine1=1.1;Console.WriteLine1.1=1.1;二十八、=所有數(shù)值類型和枚舉類型都定義"大于等于"關系運算符=,假設第一個操作數(shù)大于或等于第二個操作數(shù),該運算符將返回true,否那么返回false。using Sys

34、tem;class MainClass static void MainConsole.WriteLine1.1=1;Console.WriteLine1.1=1.1;二十九、+=加法賦值運算符。備注:使用+=賦值運算符的表達式,例如x+=y等效于x=x+y不同的是x只計算一次。+運算符的含義取決于x和y的類型例如,對于數(shù)值操作數(shù),其含義為相加;對于字符串操作數(shù),其含義為串聯(lián)。不能直接重載+=運算符,但用戶定義的類型可以重載+運算符請參見operator。例如using System;class MainClass static void Mainint a=5;a+=6;Console.Wr

35、iteLinea;string s="Micro";s+="soft";Console.WriteLines;三十、-=減法賦值運算符。備注:使用-=賦值運算符的表達式,如x-=y等效于x=x-y不同的是x只計算一次。-運算符的含義取決于x和y的類型例如,對于數(shù)值操作數(shù),其含義為相減;對于委托操作數(shù),其含義為移除。不能直接重載-=運算符,但用戶定義的類型可重載-運算符請參見operator。例如using System;class MainClass static void Mainint a=5;a-=6;Console.WriteLinea;三十一、

36、*=二元乘法賦值運算符。備注:使用*=賦值運算符的表達式,如x*=y等效于x=x*y不同的是x只計算一次。為數(shù)值類型預定義了*運算符以執(zhí)行乘法操作。不能直接重載*=運算符,但用戶定義的類型可重載*運算符請參見operator。例如using System;class MainClass static void Mainint a=5;a*=6;Console.WriteLinea;三十二、/=除法賦值運算符。備注:使用/=賦值運算符的表達式,如x/=y等效于x=x/y不同的是x只計算一次。為數(shù)值類型預定義了/運算符以執(zhí)行除法操作。不能直接重載/=運算符,但用戶定義的類型可重載/運算符請參見op

37、erator。對于所有復合賦值運算符,隱式重載二元運算符會重載等效的復合賦值。例如using System;class MainClass static void Mainint a=5;a/=6;Console.WriteLinea;double b=5;b/=6;Console.WriteLineb;三十三、%=模塊賦值運算符。備注:使用%=賦值運算符的表達式,如x%=y等效于x=x%y不同的是x只計算一次。為數(shù)值類型預定義了%運算符,以計算相除后的余數(shù)。不能直接重載%=運算符,但用戶定義的類型可重載%運算符請參見運算符C#參考。例如using System;class MainClass

38、 static void Mainint a=5;a%=3;Console.WriteLinea;三十四、&="與"賦值運算符。備注:使用&=賦值運算符的表達式,如x&=y等效于x=x&y不同的是x只計算一次。&運算符對整數(shù)操作數(shù)執(zhí)行按位邏輯"與"運算,對bool操作數(shù)執(zhí)行邏輯"與"運算。不能直接重載&=運算符,但用戶定義的類型可重載二元&運算符請參見operator。例如using System;class MainClass static void Mainint a=0x0

39、c;a&=0x06;Console.WriteLine"0x0:x8",a;bool b=true;b&=false;Console.WriteLineb;三十五、|="或"賦值運算符。備注:使用|=賦值運算符的表達式,例如x|=y等效于x=x|y不同的是x只計算一次。|運算符對整型操作數(shù)執(zhí)行按位邏輯"或"運算,對布爾操作數(shù)執(zhí)行邏輯"或"運算。不能直接重載|=運算符,但用戶定義的類型可以重載|運算符請參見operator。例如using System;class MainClass static v

40、oid Mainint a=0x0c;a|=0x06;Console.WriteLine"0x0:x8",a;bool b=true;b|=false;Console.WriteLineb;三十六、="異或"賦值運算符。備注:以下形式的表達式x=y按如下規(guī)那么計算:x=xy不同的是x只計算一次。運算符對整數(shù)操作數(shù)執(zhí)行按位"異或"運算,對bool操作數(shù)執(zhí)行邏輯"異或"運算。不能直接重載=運算符,但用戶定義的類型可重載!運算符請參見operator。例如using System;class MainClass stat

41、ic void Mainint a=0x0c;a=0x06;Console.WriteLine"0x0:x8",a;bool b=true;b=false;Console.WriteLineb;三十七、=左移賦值運算符。備注:以下形式的表達式x=y按如下規(guī)那么計算:x=x y不同的是x只計算一次。運算符將x向左挪動y指定的位數(shù)。不能直接重載=運算符,但用戶定義的類型可重載運算符請參見operator。例如using System;class MainClass static void Mainint a=1000;a=4;Console.WriteLinea;三十八、=右移賦值運算符。備注:以下形式的表達式x=y按如下規(guī)那么計算:x=x y不同的是x只計算一次。運算符根據(jù)y指定的量對x進展右移位。不能直接重載=運算符,但用戶定義的類型可重載運算符請參見operator。例如using System

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論