很簡單的問題

2021-09-06 02:27:07 字數 1119 閱讀 8181

宣告:切勿以此為筆試題。

我們很多時候都會激烈的討論演算法、資料結構、設計模式、n層架構、某某框架、系統架構,可是真的在實戰當中,才會發現原來有些很簡單的問題我們會不知道答案。比如說:

private

static

void

dowhilecontinuetest()

while

(false);}

上面的輸出是什麼呢?這個問題看起來好像很簡單,continue不就是進入下一次迴圈嘛。可問題是,如何進入呢:是直接走到迴圈最上面的一行**呢,還是走到迴圈條件的判斷?for、foreach和while都是走到最上面一行**,而最上面一行**都存在或者隱含了迴圈條件的判斷。do-while因為迴圈判斷條件在最後,因此不可能同時符合這兩個說法,那麼到底哪乙個說法才是真的呢?

其實無論結果如何,msdn上的說法肯定是不嚴謹的。好吧,我們忽略msdn的問題,這個疑惑總歸要解決的。結果如何,請君自己動手以便加深記憶。

答案是輸出:

0而不是:01

2也就是說,continue的準確含義是:

立即跳過後面的語句,直達迴圈條件判斷處。

或者說是:立即執行條件判斷,如果條件判斷成立,則進入下一次迭代,否則跳出迴圈體。

再比如:

private

static

void

dynamictest()

public

class

host

public

class

testpoint : iface}}

我們知道dynamic是4.0的新特性,是編譯器的語法糖。實際上dynamic型別物件在il裡面就是乙個object,對其的訪問一般來講就是通過反射來進行呼叫。(當然,可以通過別的方式來自己擴充套件,此處忽略。)問題是,這個反射的過程會考慮上面的介面嗎?假如不考慮那一定會出錯。可是dynamic本身要解決的其中乙個問題,是簡化activex呼叫。然而我在實際的使用過程中發現有乙個.net的com物件上面顯式的實現了乙個com介面,也就是說這不是乙個native的com物件。此時如果不找其中的介面就會導致呼叫失敗,大家猜結果會如何?

答案是丟擲了異常,也就是說不考慮其(隱式)實現的介面。

有的時候一些簡單的問題,也還是挺有趣的。

GDI 水印 很簡單很簡單的版

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...

mysql很簡單 MySQL入門很簡單

基本資訊 商品名稱 mysql入門很簡單 附光碟 出版社 清華大學isbn號 9787302243625頁數 466 內容提要 目錄 篇 mysql資料庫基礎 1.1 資料庫理論基礎 1.1.1 資料儲存方式 1.1.2 資料庫泛型 1.1.3 資料庫在開發中作用 1.2 資料庫技術構成 1.2.1...

矩形覆蓋問題(方法很簡單)

問題 用2 1的小矩形去填充2 n的矩形,問共有多少種填充的方法?分析 問題的本質是向2 n的矩形框種放小矩形。想讓每次放入的都能夠將框的長填充滿,只有兩種放入方式 1 僅放入乙個。2 放入由兩個湊成的2 2的小矩形。所以我們仍然可以用二叉樹求解。既我們的初始節點為5 假設n 5 左右子節點則為4 ...