常見的.net誤解 1-1 字串是不可修改的(immutable)

總是很在很多資料或者文章上介紹.net的字串是不可以修改的(immutable)  先來看看什麼是字串  在.net裡面字串是一個參考型別,但是有很多實值型別的特徵  例如比較兩個字串,實際上比較的是兩個的內容,而不是引用地址 ,(這裡涉及到一個概念就是字串駐留技術) 然後我們看看為什麼經常有人說字串是不可以修改的  因為字串有以下特性:當你對字串執行 + ,  Substring

NewSlot and ReuseSlot

namespace CSharpTester{class Program {static void Main(string[] args) { var methodA = typeof(A).GetMethod("Test"); PrintAttributes(typeof(System.Reflection.MethodAttributes), (int)methodA.Attributes); var

讀書筆記 演算法導論 堆排序

感覺自己演算法不給力額...對基本概念和基本操作都不夠熟悉準備吧整個演算法導論過一遍...把大部分常用的東西自己寫一遍做it真是辛苦啊...先弄個常用的堆吧堆可以用作堆排序,優先隊列等等情況using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;namespace

【項目】 技術選型 – 平台和語言

又是一個很有爭議的話題世界上有這麼多的技術平台和解決方案; windows, linux, .NET, java, PHP, C++, C, Python 等等等。。在實現項目時,為什麼我們選擇其中一個,而不是其他呢?1.團隊現有團隊的組成 (對大部分情況來說 決定性因素)組建新團隊的難度市場上是否容易找到該技術類型的人,(有些方面的人在公司所在地或者說國內不好找)如果找不到該類型的人,是否容易培養2.適應性在某些特定領域,某種技術有特別的優勢或者劣勢

微軟面試題 狀態機器

已知 圓盤上有4個開關 分布在正方形的4個角上1.每個開關都只有兩個狀態 開或者關 ; 觸摸一下開關 它的狀態就會互相轉換(開->關  關->開)2.你看不到現在開關的狀態是什麼,你也不能通過觸摸判斷現在的開關是開還是關3.每一次操作你可以選擇改變一個開關的狀態,或者改變兩個開關的狀態4.操作完成後 ,圓盤會隨機轉動, (也就是說你下一次操作的時候這些開關的位置都已經移動了)5.由於正方形的相鄰點和對角點距離不一樣

面試題:紅綠燈

已知一個十字路口,1.每次切換紅綠燈的時間間隔總是M2.相對的紅綠燈總是同樣的狀態3.相鄰的紅綠燈總是不同的狀態( 即狀態要麼是 0101 要麼是1010  不可能出現其他狀態,如1100)4.一個人通過一個行人穿越道的時間是N (N<M)5.請問一個人任意時間到達路口,到達對角所需的平均時間6.按照國外的情況 只要你上行人路的時候還是綠燈, 那麼你就可以一直走過去 (即使下一秒變成了紅燈)大意就是碰運氣啦 一個人要走到對角 平均需要多久

別拿Thread當定時器使用…

經常可以看到很多程式使用Thread當作定時器(Timer)使用,例如定時檢查資料,定時清空緩衝什麼的就像以下代碼代碼Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> Thread t = new Thread(p => {while (true) {//做點什麼...例如重新整理資料

.net 繼承&多態情況下,調用方法的判斷規則

從子類開始,一直向父類遞迴如果方法聲明在介面上,那麼返回這個方法 如果方法聲明在父類上,如下所示  如果給定的方法是override,那麼返回虛方法 (被override的方法)  如果給定的方法是new的 (注意,預設就是new), 那麼將返回該方法本身, (在IL中可以看到newslot)  如果該方法沒有被定義在當前類型中,那麼返回開始分析當前類的父類以下是原文,我的翻譯有改動部分內容If the method is declared on an interface, returns

有趣的面試題 1-1 單向鏈表

已知記憶體中存在一個單向鏈表,表示方法為  1 2 3  .... n現在只給你一個 節點m ,  只知道節點m一定在這個單向鏈表上要求是刪除節點m不知道單向鏈表的起點在哪裡 常規思路,是找到m的前一個節點 m-1,然後將 m-1 指向m的下一個資料 m+1 ,但是這裡的問題是, 這是一個單向鏈表,根據m根本無法查到 m-1 所以要換一種思路思考所謂的刪除操作可以換一種方式來做,知道m 那麼就知道m+1 m+2....n那麼將m+1的值拷貝到 m

【設計原則和建議】 方法輸入參數

個人在多年的開發中對設計有一些自己的想法,在此總結出一些規則希望和大家共同探討當然很多設計大家應該已經知道了,當然對於某些設計可能每個人有不同的看法本系列文章不是為了討論基本的文法,而是介紹和討論一些設計的規則1.在允許的情況下,優先使用父類作為參數類型其好處是允許該函數有更大的適用範圍,有更多的第三方可以調用該方法 (原來持有父類和其他子類變數的第三方現在也可以調用了)(可別為了更大的參數範圍把變數都聲明為Object了) class InputParameter {//如果可以

複習HTTP 14.2 HTTP Header – Accept-Charset (RFC 2616)

HTTP Header中Accept-Charset 代表了瀏覽器支援的字元集例如: Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3代表這個瀏覽器比較喜歡以下的字元集1) 最喜歡  ISO-8859-12) 然後是 utf-83) 最後是 *    (所有字串,不限制)對應的response http header 欄位是 Content-Type如果瀏覽器請求的字元集是伺服器無法響應的,

微軟面試題 麻將胡牌演算法

1. 這個題目要求提供最終代碼(C#)2. 該最終代碼必須可以編譯,運行,並實現以下的業務功能3. 限制時間一個小時, 包括閱讀文檔和提交代碼的時間業務功能: 給定若干張的麻將牌 (假設只有 萬 一種類型,沒有條和筒)最終胡牌必須滿足以下條件  所有的牌必須連成順子或者3張 即:123 或者111  最後還要有一對, 例如 11方法簽名如下: bool Test( int []  cards){  //這裡是你的代碼}傳入參數例如  { 1, 1 , 2 , 3}

Facebook application 開發一 Login

無聊。。。好久沒寫blog了。。。1. 引用 javascript    <script src="http://connect.facebook.net/en_US/all.js" type="text/javascript"></script>2. 添加一個login button  <a href="#" id="FacebookLogin">login as facebook user</a>3.註冊javascript 事件  (對了

【設計原則和建議】 方法

方法  1.一個方法內的代碼不能超過30行.絕大部分方法都可以在30行內結束.這是一種強迫開發人員最佳化設計和代碼的方式.   2.什麼樣的方法不應該拋出異常?靜態建構函式,拋出以後整個類型就再也無法使用了.構析函數.屬性的get方法 (有些類的設計會違背這個特性).Dispose (理論上也不應該拋出異常,不過有些設計已經拋出了異常).   3.還沒有實現的方法應該拋出NotImplementedException 異常.     4.移除沒有被調用到的方法

一次HTTP請求中的緩衝

一個HTTP Request從使用者點擊的一瞬間,到伺服器返回請求,一般會經過以下類型的緩衝(按照由用戶端到伺服器端的順序)1.瀏覽器端儲存:HTML5中的本機存放區功能允許在瀏覽器端儲存資料.Flash等第三方外掛程式也有類似的功能.JavaScript儲存一些資料在當前Context也算這種類型.2.瀏覽器端檔案快取HTTP協議中在時間未到期等情況下,不請求伺服器資料而直接使用本地的檔案

OData 1-3 自訂身分識別驗證和OData

和windows身分識別驗證相比,在實際程式中應用更多的是自訂身分識別驗證1.在WCF服務內做身分識別驗證 代碼Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public class ODataBaseService<T> : DataService<T>//, IServiceProvider {public

【設計原則和建議】 方法傳回值

基本規則 1.不要忽略傳回值;如果不想處理傳回值,就選擇沒有傳回值的方法(如果有的話) 2.公開給第三方的方法傳回值類型在滿足功能的情況下,盡量選擇父類和介面,而不是具體類型 (物件導向的封裝性)這點可能有很大的爭議,我區分為對外的和對內的方法 (對內請看No.3)返回子類,意味要把子類的細節也暴露出去使用介面返回具體類型,就不用暴露細節了 public class ClassP //請忽略嵌套類的設計問題 {protected internal class User :

複習HTTP 14.1 HTTP Header – Accept (RFC 2616)

HTTP Header 包含了一系列重要的資訊例如狀態代碼,響應類型,檔案編碼等...按字母順序排列第一個HTTP Header 就是AcceptAccept 只出現在Request中其含義是: 瀏覽器端可以接受的媒體類型例如 Accept: text/html  代表瀏覽器可以接受伺服器回傳的類型為 text/html  也就是我們常說的html文檔如果伺服器無法返回text/html類型的資料,伺服器應該返回一個406錯誤(non acceptable)萬用字元 * 代表任意類型例如

OData 1-4 OData文法(上)

假設目前提供OData的服務地址是http://localhost:9527/ODataService.svc提供的服務內容如下所示 (提供了一個WagerInformations) 代碼Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?xml version="1.0" encoding="utf-8" standalone="yes" ?

Facebook application 開發二 擷取使用者資訊

以下使用的是Facebook C# SDK ,一個開源項目 1.擷取使用者登入有兩個前置條件  a.使用者登入(在你的網站登入, 可以參考開發一)  b.使用者允許你讀取他的某些資訊,這個可以在許可權表中查到需要申請什麼許可權2. 申請許可權是很簡單的  例如你需要讀取使用者like的資料  它的key是 user_like那麼 重新導向到 https://www.facebook.com/dialog/oauth?client_id=your app

總頁數: 61357 1 .... 6749 6750 6751 6752 6753 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.