Time of Update: 2018-12-08
情況1:如下,這樣我們會發現,n輸出為100,雖然兩層迴圈的標識符都是i,然是兩個做管轄的範圍不同,具體情況不明~~~求大神解釋複製代碼 代碼如下:int main(int argc,char* argv[]){ int n=0; int mx; for (int i=0;i<10;i++) { for (int i=0;i<10;i++) { n++; } }
Time of Update: 2018-12-08
首先看一個例子:複製代碼 代碼如下:#include <iostream> using namespace std; class A{}; class B { int b; char c; }; class C { int c1; static int c2; }; int C::c2 = 1; class D:public C,public B{ int d; }; int main() {
Time of Update: 2018-12-08
複製代碼 代碼如下:static string GetStr(string s = "a", int i = 10, string r = "rrrr") { return s + i + r; }調用時,可以用如下幾種方法調用複製代碼 代碼如下: GetStr(); GetStr("abcde"); GetStr("abcde", 100);
Time of Update: 2018-12-08
一、輸入緩衝 在介紹如何進行詞法分析之前,先來說說一個不怎麼被提及的問題——怎麼從源檔案中讀取字元流。為什麼這個問題這麼重要呢?是因為在詞法分析中,對字元流是有要求的,它必須能夠支援後援動作(就是將多個字元放回到流中,以後會再次被讀取)。先來解釋下為什麼需要支援後援動作,舉個簡單的例子來說,現在要對兩個模式進行匹配:圖 1 流的回退過程上面是一個簡單的匹配過程,僅為了展示回退過程,在後面實現 DFA 模擬器時會詳細解釋是如何匹配詞素的。現在來看看 C# 中與輸入相關的類,有
Time of Update: 2018-12-08
首先,當考慮到記憶體配置和執行效能的時候,使用std::deque要比std::vector好。Deque總覽deque和vector一樣都是標準模板庫中的內容,deque是雙端隊列,在介面上和vector非常相似,在許多操作的地方可以直接替換。假如讀者已經能夠有效地使用vector容器,下面提供deque的成員函數和操作,進行對比參考。函數描述c.assign(beg,end)c.assign(n,elem) 將[beg; end)區間中的資料賦值給c。將n個elem的拷貝賦值給c。c.at(
Time of Update: 2018-12-08
Regex是一種描述詞素的重要表示方法。雖然Regex並不能表達出所有可能的模式(例如“由等數量的 a 和 b 組成的字串”),但是它可以非常高效的描述處理詞法單元時要用到的模式類型。一、Regex的定義Regex可以由較小的Regex按照規則遞迴地構建。每個Regex r 表示一個語言 L(r) ,而語言可以認為是一個字串的集合。Regex有以下兩個基本要素:1.ϵ 是一個Regex, L(ϵ)=ϵ ,即該語言只包含空串(長度為 0 的字串)。2.如果 a 是一個字元,那麼 a
Time of Update: 2018-12-08
該雜湊演算法為一個檔案產生一個小的二進位“指紋”,從統計學的角度來看,不同的檔案不可能產生相同的雜湊碼要產生一個雜湊碼,必須首先建立一個HashAlgorithm對象,通過HashAlgorithm.Create方法來完成。然後調用HashAlgorithm.ComputeHash方法,它會返回一個儲存雜湊碼的位元組數組,再使用BitConverter.Tostring()將其裝換為字串進行比較。源碼如下:複製代碼 代碼如下:public static bool
Time of Update: 2018-12-08
複製代碼 代碼如下:using System;using System.Collections.Generic;using System.Text;namespace WindowsFormsApplication1{ using System; using System.Drawing; using System.Runtime.InteropServices; using Microsoft.Win32; using System.Reflection;
Time of Update: 2018-12-08
通過調用Win32 API實現。複製代碼 代碼如下:public class User32API{ private static Hashtable processWnd = null; public delegate bool WNDENUMPROC(IntPtr hwnd, uint lParam); static User32API() { if (processWnd == null) { processWnd =
Time of Update: 2018-12-08
1. 水晶易表不能識別WS介面返回的DataTable或DataSet資料類型,會提示“無法載入URL”3. C#調用Oracle的Package,並返回資料列表2. 經查證,可以接受string類型的,如果需要返回資料列表,那麼需要藉助數組來返回,代碼實現如下:複製代碼 代碼如下:public WeekSale_Table GetData(string skc1, string skc2, string week1, string week2, string week3, string
Time of Update: 2018-12-08
複製代碼 代碼如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Text.RegularExpressions; namespace
Time of Update: 2018-12-08
yield不能單獨放在try-catch塊中,如果try中有yield那麼,這個try塊後面不許跟著finally塊;也不能出現在匿名方法中,所以,看起來yield似乎並不常用,但是也不是不用。我前面有一個關於迭代器的例子《C#中的迭代器基礎》中就用到了。可以參考一下那個例子,但是這裡要再說的一點是我後來看到的,yield是跟return一起使用的,形式為yield return
Time of Update: 2018-12-08
泛型約束的意思就是說:類的泛型,只能是where字句後面所寫的介面或類。這麼說好像也有點不大明白,舉個例子。我有一個介面,如下:複製代碼 代碼如下: /// /// 國籍的介面 /// public interface INationality { string Nationality { set; get; } string GetNationality(); }然後該介面有兩個實現,如下:複製代碼 代碼如下: /// ///
Time of Update: 2018-12-08
C#是一種型別安全的程式設計語言(所有運算式都能解析成某個類型的執行個體,在編譯器產生的程式碼中,只會執行對這個類型有效操作),和非型別安全的語言相比,型別安全的優勢就體現出來了:1.許多錯誤能在編譯時間檢測到,取保代碼在執行它之前是正確的。2.編譯時間語言通常能產生更小,更快的代碼。(在編譯時間進行更多的假設,並在IL和中繼資料中落實那些假設)為了方便開發人員使用反射或者與基本組件通訊,dynamic誕生了!一下代碼展示了如何利用反射在一個String目標("根據我找類型")上調用一個方法(“
Time of Update: 2018-12-08
最近由於編程的需要,對 C# 的類型轉換做了一些研究,其內容涉及 C# 的裝箱/拆箱/別名、數實值型別間相互轉換、字元的 ASCII 碼和 Unicode 碼、數值字串和數值之間的轉換、字串和字元數組/位元組數組之間的轉換、各種數實值型別和位元組數組之間的轉換、十六進位數輸出以及日期型資料的一些轉換處理,在這裡與大家分享。1. 裝箱、拆箱還是別名許多 C#.NET 的書上都有介紹 int -> Int32 是一個裝箱的過程,反之則是拆箱的過程。許多其它變數類型也是如此,如:short
Time of Update: 2018-12-08
C# Coding的時候,常常涉及代碼注釋,常見的注釋包括兩類:1)單行注釋。格式:// Comments2)多行注釋。格式:/* Comments... */C#引入了新的XML注釋,即我們在某個函數前新起一行,輸入///,VS.Net會自動增加XML格式的注釋,這裡整理一下可用的XML注釋。XML注釋分為一級注釋(Primary Tags)和二級注釋(Secondary Tags),前者可以單獨存在,後者必須包含在一級注釋內部。I 一級注釋1. <remarks>對類型進行描述,
Time of Update: 2018-12-08
之前看了很多關於圖的遍曆的代碼 今天我用了常用的資料結構寫出來 純屬於演算法 性方面還有待提高 時間複雜度最壞情況下O(2^n) 最優:O(n^2)線路圖為雙向 帶有權值 比如A-B距離是5000km 那麼B-A有可能不是5000km 所以我在LoadData方法時候沒做交換變數直接存放在集合裡面以起點遞迴尋找下一連接點並返回當作起點節點尋找 代碼雖然有些亂 本想調整 !複製代碼 代碼如下: static List<string[]> maindata = null;
Time of Update: 2018-12-08
Web.Config,其中一部分配置如下:複製代碼 代碼如下: <appSettings> <add key="EricTest" value="EricTest"/> <add key="Encrypt" value="Encrypt value"/> <appSettings> <connectionStrings > <add name="EncryptConnection"
Time of Update: 2018-12-08
複製代碼 代碼如下: [DllImport("User32.dll", EntryPoint = "FindWindow")] private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll")] static extern IntPtr FindWindowEx(
Time of Update: 2018-12-08
複製代碼 代碼如下: private void button1_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { using (FileStream fs = File.OpenRead(openFileDialog1.FileName)) {