一些C#面試題(無聊之舉)

既然無聊,又不能浪費時間,那就做點無聊的事情打發時間: 1.Thread和Process之間有什麼區別?.NET新引入了Application Domain的概念,這樣他們三個之間有什麼區別?引入了Application Domain會帶來一些潛在的問題嗎?    進程是程式的組織形式,線程是系統調度的基本單元,一個進程至少包含一個以上的線程,線程存在於進程內;  應用程式定義域是為了像IIS這類程式提供的一種進程內隔離方法,便於在一個進程內運行多個應用。進程>應用程式定義域>線程.

C#的新特性體驗(非同步方法呼叫的同步調用)

        非同步編程出現已經很早了,微軟在silverlight中的(RIA

c#中Windows訊息對應的十六進位表

c#中Windows訊息的十六進位表述 2009-11-14  來自:CSDN部落格  字型大小:【大 中 小】         windows mobile編程,無論使用eVC還是.net CF,都脫不開windows訊息機制這個架構。在日常的程式編寫過程中,windows訊息也是很常用的,windows訊息常用的api函數也是常用。        這裡我們不介紹windows

從逆向分析角度看C++的解構函式

有這麼一段C++代碼:#include <cstdio>class CExample { int x, y; public: CExample(int va, int vb) { x = va;y = vb; } CExample(const CExample& C) { x = C.x;y = C.y; } ~CExample() {printf("~CExample()\n"); } void Show () { printf("%

從逆向分析角度看C++ 中的引用

幾個問題:1. 引用變數佔有記憶體空間嗎?2. 引用是怎樣工作的?3. 指標是怎樣工作的?4. 引用和指標有什麼區別?1. 何為引用《C++ Primer》裡面是這樣說的“引用(Reference)就是對象的另一個名字,引用只是它綁定的對象的另一個名字,作用在引用上的所有操作事實上都是作用在該引用綁定的對象上”,這句話概括得很徹底2. 引用佔有記憶體空間嗎?一段C++代碼:// Reference_Pointer_Local#include <cstdio>int main() {

從逆向分析角度看C++拷貝建構函式

一段C++代碼://: HowMany_2.cpp#include <iostream>using namespace std;class HowMany { static int objectCount; public: HowMany() { ++objectCount; print("HowMany()"); } ~HowMany() { --objectCount; print("~HowMany()"); }

從逆向分析角度看C++虛函數

談到虛函數,我想很多朋友都應該知道虛函數表指標VPTR和虛函數表VTABLE,如果不清楚的朋友,建議先看看侯捷先生翻譯的《深度探索C++物件模型》:)剛開始的時候,我僅僅知道虛函數的多態機制是通過VPTR和VTABLE操控的,完全地相信書上所描述的,並沒有親自去證明過,或許是因為那時候我還沒有接觸到逆向分析吧:) 提幾個問題:1.      VPTR的大小如何確定?2.      VPTR在類執行個體中的位移值是多少?3.      VPTR是如何索引到需要調用的函數的?4.      VTAB

C語言 線性表描述 (實戰片)

#include<stdio.h>#include<stdlib.h>#define TRUE 1#define FALSE 0#define MAXSIZE 11typedef int elemType;typedef struct { elemType *list; int length;}sqList;//initvoid initList(sqList *L){ L -> length = 0; L -> list =

關於c#表單控制項突然消失的解決辦法

今天開啟c#項目發現表單中的控制項全都不翼而飛了,很是奇怪,於是開始找原因,找來找去還是沒有解決,無奈,自己來吧,開啟*.desigener.cs檔案。看到表單的初始化代碼,我建立了一個工程然後在一個表單上畫了幾個控制項,再將這個表單的*.desigener.cs檔案中的初始化代碼和出錯檔案比對,發現少了這樣一句:--------------------------------------------------------------------------------------------

Binder架構在Framework層的C++中的使用

關於Binder在C++層的使用,搜過幾篇文章,講得比較多,也比較複雜,除非是想對OpenBinder這個開源項目深入研究,否則的話,用不了那麼多的知識。我因為需要移植Android調些Framework層的Bug,一般跟蹤程式時只要能找到誰調用的誰就可以了。接觸過這部分一段時間後,就整理出了Android中在Framework層的C++中使用Binder時的架構。很簡單,藉此可以很容易理清Framework部分代碼的結構而不必深入研究OpenBinder實現機制,就把它記錄下來了。 簡單來說,

深入解析C語言聲明

如果說C語言聲明很簡單的人不是牛人就是還沒入門。本文來講解C語言的聲明的一些基本內容,很多內容參考《c專家編程》。首先由一個最簡單的問題引入,你知道 int * p[5] 和 int (*p)[5] 的區別在哪裡嗎?把後面的答案遮到,想想。也許你知道反正一個是含有五個指向整型的指標元素的指標數組,另一個是指向一個擁有5個整型元素的數組的指標,具體呢?int

Java與C#的比較學習記錄(4)

1、多線程     

快速排序(QuickSort)的C#實現(採用隨機化主元方式)

演算法代碼如下:/// <summary>        /// 快速排序的分隔,即:對於一個指定的主元x,找到位置i,使得i的左邊元素都小於等於x,右邊都大於等於x.        /// </summary>        /// <param name="A"></param>        /// <param name="p"></param>        /// <param

排序網路(C#類比)

排序網路利用比較子進行簡單的組合形成排序網路,利用並行方式執行,可以實現高效的排序演算法,排序網路如果用軟體實現,其實沒有什麼大的意義,因為目前的電腦雖然有多核,也可以用多線程,在一定程度上實現真正的並行,但其並行能力相對於稍具規模的排序網路來說都是有限的.排序網路用硬體來實現就非常具有優勢了,排序網路的基本單元比較子的結構非常簡單,適合大規模應用,還可以模組化.在組成比較排序網路後,在有限的刻度序列下就可以完成輸入序列的排序(不需要通常系統意義下的並行).在規模為n的排序網路中,序列長度1-n

Java與C#的比較學習記錄(1)

我在大學學的是C語言,自學和選修的是C++,剛畢業也搞過幾天Jsp,寫過幾個Applet.後來轉向delphi做案頭開發,再後來又轉向C#做Web開發.最近相對比較閑,決定學習一下Java,以取長補短,經過半天的忙碌,終於搭建起了開發環境,在網上找了一篇入門的教程,經過幾個小時的練習(嚴格說叫複習),基本熟悉了Java的文法和基本的結構.在這裡對Java和C#做些簡單對比:1) 曆史     Java當然比C#長,而且Java脫胎於C和C++,是典型的C風格,C#也是脫胎於C和C++,但由於C#

Java與C#的比較學習記錄(2)

1) I/O:這個東西其實比較沒什麼意義,不過java的流概念跟C#的流概念其實都差不多,繼承體系都差不多,只是Java中是Input,Output,而C#中是Read和Write.其實各自支援類中的方法名大部分都相同.當然,C# 除了流支援外,還相容原來的一些檔案讀寫.2)序列化:對象的序列化兩者都有支援,做法都差不多,當然,C# 中除了二進位序列化外,還可以序列化成XML格式(Java中有不有還有待更進一步瞭解).序列化的用途其實也差不多(主要是RMI).3)反射機制:兩者的反射機制差不多,

C#字串留用機制與Lock.

因為C#的字串留用機制,下面的代碼:string theKey1 = "XXXXXX";string theKey2 = "XXXXXX";if (object.ReferenceEquals(theKey1, theKey2)){ string theC = theKey1 + theKey2;}theKey1,theKey2指向的是同一個地址.但下面的代碼:int theA = 1; string theKey1 = "XXX"+theA;

分散式運算(C#)實踐連載預告

這段時間比較忙,碼代碼碼得都有點反胃了,沒顧得上寫部落格,看在CSDN贈送一張雲端運算門票還管3餐中午飯的份上,還是決定完成這個每月4篇的基本任務,但發現又沒什麼可寫的,想來想去,還是把自己寫的簡單分散式運算模型分享出來,整成一個小連載,利用這個簡單的分布式模型,其實可以實現簡單的MapReduce功能.雖然比較簡單,但Hadoop的原理其實也是這樣的.當然,出來獻醜的心理素質還是具備的.今天出來的時候源碼沒帶在手邊,所以晚上回去再開篇,這篇算預告,同時兼賺CSDN的部落格積分.拿人手短,吃人手

分散式運算實踐(C#)-1

為什麼要採用分散式運算?簡單的來講就兩個原因:一是單台電腦計算能力有限,即在一個限定的時間內要完成某個計算任務,一台機器的計算能力不夠,需要用多台電腦來完成;二是有些需要計算處理的對象天然就是分布的,要完成這些計算,就必須在這些對象分布點上進行,比如多台電腦的管理。當然,我這裡所講的分布更多的是邏輯上的,一個分布點就是一個計算節點,至於這些節點在物理上是否分布在多台電腦上,不是考慮的關鍵點。我們首先來看看分散式運算的幾個要點,我們知道,如果把一件任務交給多個節點去處理,包括以下基本的流程步驟:1

Java與C#的比較學習記錄(3)

1) 基本架構     兩者的基本架構也差不多,Java:Java程式->Java位元組碼->JVM(JIT).DotNet:C#程式->CIL(通用中繼語言)->CLR(JIT).開始的時候Java的位元組碼是解釋執行的,但現在使用的是即時編譯技術,C#作為後來者,從一開始就採用了這種技術.就軟體的執行架構來說是基本相同的;2)平台無關性:    

總頁數: 4314 1 .... 1651 1652 1653 1654 1655 .... 4314 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.