Time of Update: 2018-12-07
說到參數傳遞,必須得弄清實值型別和參考型別:(為了容易表達,我暫且命名存放在堆中的內容為堆中對象,存放在棧上的內容為棧中對象。)實值型別存放在棧中,直接存取。如果有:int a=0;int b=a;就產生了兩個棧中對象。參考型別需要在堆中顯式分配,且不能直接存取,需要在棧中分配一個棧中對象(C++叫指標,C#叫引用)指向其堆中對象。如果:StringBuilder strb = new StringBuilder();StringBuilder strb2 =
Time of Update: 2018-12-07
當然,也可以通過下面的代碼直接設定StartPosition屬性項為“Manual”。 F1.StartPosition = FormStartPosition.Manual; 對於表單的起始位置,也可以利用表單的Top和Left屬性設定,代碼如下。 F1.Top = 300; F1.Left = 200; 上面兩行代碼便將F1的起始位置設定為(300, 200),即距離螢幕頂部300像素,距離螢幕左邊200像素。 下面代碼同樣實現了表單的大小設定。 using System; using
Time of Update: 2018-12-07
public class ExcelHelper { #region 成員變數 private string templetFile = null; private string outputFile = null; private object missing = Missing.Value; private DateTime beforeTime; //Excel啟動之前時間
Time of Update: 2018-12-07
共產生9個dll,如:1.在程式中添加*_csharp.dll四個檔案的引用;2.將剩餘的五個檔案複製到程式的Debug檔案夾中;(如果不複製這五個檔案就會出現類似“OSGeo.GDAL.GdalPINVOKE的類型初始值設定項引發異常”的錯誤)3.測試程式: OSGeo.GDAL.Gdal.AllRegister(); OSGeo.GDAL.Dataset ds=OSGeo.GDAL.Gdal.Open(@"D:\我的文件\案頭\檔案讀取\tif\
Time of Update: 2018-12-07
python作為動態語言,開發效率相當高,但如我們所知,動態語言的執行效率往往是比較低的,請看下面簡單的測試過程: 一、 C語言實現100萬次列印: 代碼:[cpp] view plaincopyprint?#include<stdio.h> #include <time.h> int main(int argc, char* argv[]) { unsigned long i = 1; unsigned long ulNum = 1
Time of Update: 2018-12-07
1、手動嵌入式資源右鍵工程-添加-現有項-圖片或者文本點擊圖片或者文本-產生操作-內嵌資源 //這一步非常重要這樣添加的圖片或者文本就打包到exe中可以這樣訪問:Assembly assembly = GetType().Assembly;System.IO.Stream streamSmall = assembly.GetManifestResourceStream("WindowsFormsApplication1.event.jpg");
Time of Update: 2018-12-07
Visual C# 應用程式中經常會包含非原始碼的資料。此類資料稱為“項目資源”,它可以包含應用程式所需的位元據、文字檔、音頻或視頻檔案、字串表、表徵圖、映像、XML 檔案或任何其他類型的資料。項目資源資料以 XML 格式儲存在 .resx 檔案中(預設檔案名稱為 Resources.resx),可在“方案總管”中開啟此檔案。有關項目資源的更多資訊,請參見使用資源檔。向項目中添加資源可以將資源添加到項目中,方法是:在“方案總管”中,在該項目下右擊“屬性”節點,單擊“開啟”,再單擊“專案設計工具”
Time of Update: 2018-12-07
1)class
Time of Update: 2018-12-07
裝飾模式,動態地給一個對象添加一些額外的職責。就增加功能來說,Decorator模式相比產生子類更為靈活。13.1.解釋main(),老爸ISchoolReport,成績單介面CFourthGradeSchoolReport,四年級成績單ReportDecorator,成績單裝飾器基類HighScoreDecorator,最高分裝飾器SortDecorator,班級排名裝飾器說明:對“四年級成績單”進行裝飾,ReportDecorator必然有一個private變數指向ISchoolReport
Time of Update: 2018-12-07
無意中,從網上下到一本電子書《24種設計模式介紹與6大設計原則》,很好奇這裡有24種設計模式,印象中GOF寫的《設計模式》(Design
Time of Update: 2018-12-07
適配器模式,使用之處比較特殊,不屬於常規設計模式,主要用於不同系統之間的處理。是將一個類的介面轉換成客戶希望的另外一個介面。Adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。也是一個比較簡單的模式,直接上代碼了。看代碼:8.1.解釋main(),主程式IUserInfo,本系統內介面CUserInfo,本系統內實作類別IOuterUser,外系統介面COuterUser,外系統實作類別COuterUserInfo,本系統內適配類說明:COuterUserInfo實現IU
Time of Update: 2018-12-07
橋樑模式,將抽象部分與它的實現部分分離,使它們都可以獨立地變化。實現分離的辦法就是增加一個類,11.1.解釋main(),客戶IProduct,產品介面CHouse,房子CIPod,ipodCClothes,服裝CNewCorp,橋樑類,MakeMoney()是橋樑方法CNewHouseCorp,只能生產房子,所以建構函式是CHouse*CShanZhaiCorp,什麼賺錢就生產什麼,所以建構函式是IProduct*說明:客戶直接使用CNewHouseCorp和CShanZhaiCorp類,在m
Time of Update: 2018-12-07
16.1.解釋概念:定義對象間的一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並被自動更新。main(),IObservable,被觀察者介面CHanFeiZiObservable,被觀察者韓非子IObserver,觀察者介面CLiSiObserver,觀察者李斯CZhouSiObserver觀察者周斯說明:將觀察者聚集到被觀察者韓非子身邊,韓非子的每一個舉動都會通知給觀察者,如李斯或周斯。注意:最多允許一個對象既是觀察者也是被觀察者。就像資料庫中的觸發器一樣,成
Time of Update: 2018-12-07
建造者模式,將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。一段晦澀難懂的文字,實現建立不同表示的方法就是給建立的過程傳入建立的參數。詳細的還是看代碼吧。10.1.解釋main(),客戶CCarModel,產品模型CBenzModel,平治模型CBMWModel,寶馬模型ICarBuilder,建造者介面CBenzBuilder,平治建造者CBMWBuilder,寶馬建造者CDirector,導演說明:CCarModel實現模板方法,Builder負責開始建造產品。建造
Time of Update: 2018-12-07
【例4-1】#include<stdio.h>#include<math.h>int main(void){int denominator,flag;double item,pi;flag=1;denominator=1;item=1.0;pi=0;while(fabs(item)>=0.0001){item=flag*1.0/denominator;pi=pi item;flag=-flag;denominator=denominator
Time of Update: 2018-12-07
【練2-1】#include<stdio.h>int main(void){printf("Programming in C is even more fun!\n");return 0;}【練2-2】printf("Programming is fun. And Programming in C is even more fun!\n");#include<stdio.h>int main(void){printf("Programming is fun. And
Time of Update: 2018-12-07
【例2-1】#include<stdio.h>int main(void){printf("Hello World!\n");return 0;}【例2-2】#include<stdio.h>int main(void){printf("Programming is fun.\n");printf("And Programming in C is even more fun!\n");return 0;}【例2-3】#include<stdio.h>int
Time of Update: 2018-12-07
[練3-1]不需要;因為已經涵蓋了所有可能的條件。[練3-2]#include<stdio.h>int main(void){int y;double x;printf("Enter x:");scanf("%lf",&x);if(x<0)y=-1;else if(x==0)y=0;elsey=1;printf("y=sign(%f)=%d\n",x,y);return 0;}[練3-3]#include<stdio.h>int
Time of Update: 2018-12-07
[例3-1]#include<stdio.h>int main(void){int digit,i,letter,other;char ch;digit=letter=other=0;printf("Enter 10 characters:");for(i=1;i<=10;i ){ch=getchar();if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))letter ;else
Time of Update: 2018-12-07
自訂資料類型,操作符重載執行個體。以下建立一個基本的貨幣類型Currency,USD類為Currency的子類,並進行操作符重載,可以與特別類型進行基本的加減乘除操作。 /// <summary> /// 貨幣類型基類 /// </summary> public class Currency { //貨幣實際數值 public decimal price { get; set; } public