asp.net運(yùn)算符之邏輯運(yùn)算符以及其他運(yùn)算符介紹與實(shí)例
邏輯(布爾型)運(yùn)算符用于對(duì)boolean型的結(jié)果的表達(dá)式進(jìn)行運(yùn)算,運(yùn)算的結(jié)果都是boolean型。其運(yùn)算結(jié)果如下所示:
運(yùn)算符 運(yùn)算 例子 結(jié)果
& AND(與) false&true false
| OR(或) false|true true
^ XOR(異或) false^true true
! NOT(非) !false true
&& AND(短路) false&&true false
|| OR(短路) false||true true
下面對(duì)一些比較容易出現(xiàn)問(wèn)題進(jìn)行簡(jiǎn)單解釋?zhuān)?/P>
1、“^“ 將計(jì)算操作數(shù)的邏輯“異或”;也就是說(shuō),當(dāng)且僅當(dāng)只有一個(gè)操作數(shù)為 true時(shí),結(jié)果才為true。
2、“&”與”&&“的區(qū)別在于,如果使用前者連接,那么無(wú)論任何情況下,“&”兩邊的表達(dá)式都會(huì)參與計(jì)算。如果使用后者連接,當(dāng)“&&”的左邊為false,則將不會(huì)計(jì)算其右邊的表達(dá)式。
3、“|”與“||”的區(qū)別在于,“|”表示兩邊任何一個(gè)布爾表達(dá)式為真,該組合就會(huì)返回true值;而對(duì)于“||”,跟第二差不多,若左邊是true則返回true,若左邊是falsh,則看右邊,若右邊為true則為true否則為falsh。
例
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int x = 0;
string name = "搜索吧";
//&運(yùn)算,兩個(gè)中任何一個(gè)為假時(shí)則為假
Response.Write("x != 0 & name = /"搜索吧/"的運(yùn)算結(jié)果是:"+ (x != 0 & name == "搜索吧"));
Response.Write("<br>");
//|運(yùn)算,當(dāng)兩個(gè)中任何一個(gè)為真時(shí),運(yùn)算結(jié)果為真,否則為加
Response.Write("x != 0 | name = /"搜索吧/"的運(yùn)算結(jié)果是:" + (x != 0 | name == "搜索吧"));
Response.Write("<br>");
//^運(yùn)算,當(dāng)且僅當(dāng)有一個(gè)是True時(shí),為真,否則為假
Response.Write("x != 0 ^ name = /"搜索吧/"的運(yùn)算結(jié)果是:" + (x != 0 ^ name == "搜索吧"));
Response.Write("<br>");
Response.Write("x == 0 ^ name = /"搜索吧/"的運(yùn)算結(jié)果是:" + (x == 0 ^ name == "搜索吧"));
Response.Write("<br>");
//!運(yùn)算,若真則假,若假則真
Response.Write("x != 0 的運(yùn)算結(jié)果是:" + !(x != 0));
Response.Write("<br>");
//&&短路運(yùn)算,若左邊為假則退出,若左邊為真,則看右邊
Response.Write("x != 0 && name = /"搜索吧/"的運(yùn)算結(jié)果是:" + (x != 0 && name == "搜索吧"));
Response.Write("<br>");
//||短路運(yùn)算,若左邊為真,則為真退出;若左邊為假,則看右邊,右邊為真,則為真,否則為假
Response.Write("x != 0 || name = /"搜索吧/"的運(yùn)算結(jié)果是:" + (x != 0 || name == "搜索吧"));
}
}
運(yùn)算符
C# 提供大量運(yùn)算符,這些運(yùn)算符是指定在表達(dá)式中執(zhí)行哪些操作的符號(hào)。通常允許對(duì)枚舉進(jìn)行整型運(yùn)算,例如 ==、!=、<、>、<=、>=、binary +、binary -、^、&、|、~、++、-- 和 sizeof()。此外,很多運(yùn)算符可被用戶(hù)重載,由此在應(yīng)用到用戶(hù)定義的類(lèi)型時(shí)更改這些運(yùn)算符的含義。
運(yùn)算符類(lèi)別 運(yùn)算符
基本 x.y
f(x)
a[x]
x++
x--
new
typeof
checked
unchecked
->
一元 +
-
!
~
++x
--x
(T)x
True
False
&
sizeof
乘法 *
/
%
加法 +
-
變換 <<
>>
關(guān)系和類(lèi)型檢測(cè) <
>
<=
>=
is
as
相等 ==
!=
邏輯“與” &
邏輯 XOR ^
邏輯“或” |
條件 AND &&
條件 OR ||
條件運(yùn)算 ?:
賦值 =
+=
-=
*=
/=
%=
&=
|=
^=
<<=
>>=
??
運(yùn)算符優(yōu)先級(jí)
前++ 前-- +(正號(hào)) -(負(fù)號(hào))! ~
* / %
+ -
<< >>
< > <= >=
== !=
&
^
&&
賦值運(yùn)算
后++ 后--
可重載運(yùn)算符
C# 允許用戶(hù)定義的類(lèi)型通過(guò)使用 operator 關(guān)鍵字定義靜態(tài)成員函數(shù)來(lái)重載運(yùn)算符。但不是所有的運(yùn)算符都可被重載,下表列出了不能被重載的運(yùn)算符:
運(yùn)算符 可重載性
+、-、!、~、++、--、true 和 false 可以重載這些一元運(yùn)算符。
+, -, *, /, %, &, |, ^, <<, >> 可以重載這些二進(jìn)制運(yùn)算符。
==, !=, <, >, <=, >= 比較運(yùn)算符可以重載(但請(qǐng)參見(jiàn)本表后面的說(shuō)明)。
&&, || 條件邏輯運(yùn)算符不能重載,但可使用能夠重載的 & 和 | 進(jìn)行計(jì)算。
[] 不能重載數(shù)組索引運(yùn)算符,但可定義索引器。
() 不能重載轉(zhuǎn)換運(yùn)算符,但可定義新的轉(zhuǎn)換運(yùn)算符(請(qǐng)參見(jiàn) explicit 和 implicit)。
+=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>= 賦值運(yùn)算符不能重載,但 += 可使用 + 計(jì)算,等等。
=、.、?:、->、new、is、sizeof 和 typeof 不能重載這些運(yùn)算符。
語(yǔ)法
public static Complex operator +(Complex c1, Complex c2)
- .NET中RDLC循環(huán)處理數(shù)據(jù)的應(yīng)用分析
- asp.net中for和do循環(huán)語(yǔ)句用法分享
- asp.net使用for循環(huán)實(shí)現(xiàn)Datalist的分列顯示功能
- asp.net for循環(huán)語(yǔ)句
- ASP.NET?MVC5網(wǎng)站開(kāi)發(fā)之業(yè)務(wù)邏輯層的架構(gòu)和基本功能(四)
- ASP.NET?MVC5?網(wǎng)站開(kāi)發(fā)框架模型、數(shù)據(jù)存儲(chǔ)、業(yè)務(wù)邏輯(三)
- 詳解.net循環(huán)、邏輯語(yǔ)句塊(基礎(chǔ)知識(shí))
相關(guān)文章
asp.net利用存儲(chǔ)過(guò)程和div+css實(shí)現(xiàn)分頁(yè)(類(lèi)似于博客園首頁(yè)分頁(yè))
怎么用aspnetpager.dll這個(gè)插件對(duì)服務(wù)器控件進(jìn)行分頁(yè),今天與我大家分享一下asp.net利用存儲(chǔ)過(guò)程和div+css實(shí)現(xiàn)分頁(yè)(類(lèi)似于博客園首頁(yè)分頁(yè))2012-01-01ASP.NET防止頁(yè)面刷新的兩種解決方法小結(jié)
本篇文章主要是對(duì)ASP.NET防止頁(yè)面刷新的兩種解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01Asp.net mvc驗(yàn)證用戶(hù)登錄之Forms實(shí)現(xiàn)詳解
這篇文章主要為大家詳細(xì)介紹了Asp.net mvc驗(yàn)證用戶(hù)登錄之Forms實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Visual?Studio?2022?MAUI?NU1105(NETSDK1005)?問(wèn)題處理記錄
某一天修改了幾行代碼后,突然項(xiàng)目無(wú)法編譯了,提示NU1105錯(cuò)誤,這篇文章主要介紹了Visual?Studio?2022?MAUI?NU1105(NETSDK1005)?處理記錄,需要的朋友可以參考下2022-12-12.net core如何利用ConcurrentTest組件對(duì)方法進(jìn)行壓力測(cè)試詳解
這篇文章主要給大家介紹了關(guān)于.net core如何利用ConcurrentTest組件對(duì)方法進(jìn)行壓力測(cè)試的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧2018-11-11在ASP.NET中用存儲(chǔ)過(guò)程執(zhí)行SQL語(yǔ)句
存儲(chǔ)過(guò)程:是一組為了完成特定功能的SQL語(yǔ)句集,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中。用戶(hù)通過(guò)指定存儲(chǔ)過(guò)程的名字并給出參數(shù)(如果該存儲(chǔ)過(guò)程帶有參數(shù))來(lái)執(zhí)行它。存儲(chǔ)過(guò)程是數(shù)據(jù)庫(kù)中的一個(gè)重要對(duì)象,任何一個(gè)設(shè)計(jì)良好的數(shù)據(jù)庫(kù)應(yīng)用程序都應(yīng)該用到存儲(chǔ)過(guò)程。2010-04-04ASP.NET 回發(fā)密碼框清空問(wèn)題處理方法
這篇文章主要介紹了ASP.NET 回發(fā)密碼框清空問(wèn)題處理方法,需要的朋友可以參考下2014-03-03vs2017軟鏈接失效而導(dǎo)致無(wú)法進(jìn)入安裝界面的解決方法
這篇文章主要為大家詳細(xì)介紹了vs2017軟鏈接失效而導(dǎo)致無(wú)法進(jìn)入安裝界面的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09