對class時

ClassName.name會回傳"ClassName"

ClassName.toStirng()回傳全部的code再ToString "ClassName{/*...*/}"

對實體instant時

Object.constructor.name回傳"ClassName"

對其判斷

Object instaceof ClassName (非字串) 會回傳true或false

Object.constructor.name==ClassName.name 判斷字串是否相等

文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

  • 設定為透明視窗的WPF設定請見透明視窗1 屬性設定
  • 說明
    • WPF透明視窗的屬性前提是Window Style="None",如此一來Title bar(標題列)、Control box(-口X)皆會消失,造成無法拖曳、操控視窗狀態
  • 補救方案
    • 拖曳(drag move)
      在Window物件中有提供一個方便的功能dragMove(),只要在想要拖曳的物件之點擊事件確認是左鍵後呼叫該Window.DragMove則視窗就會移動,以下範例this就是Window的實體
    • private void timeDisplay_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
      {
      if (e.LeftButton == MouseButtonState.Pressed)
          this.DragMove();
      }
    • 關閉視窗(close)
    • 在需要關閉的事件內部添加
      this.Close()
    • 最小化(Minimize)
    • 在需要關閉的事件內部添加
      this.WindowState = WindowState.Minimized;
    • 最大化(Maximize)
    • 在需要關閉的事件內部添加
      this.WindowState = WindowState.Maximized;
    • 普通化(Normalize)
    • 在需要關閉的事件內部添加
      this.WindowState = WindowState.Normal;
文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

  • 說明
    • 在WPF透明視窗或傳統WindowsForm不全透明部分可以被游標點擊到,如果要做到純顯示的視窗(如桌面工具、桌面歌詞等...)是無法直接用Xaml或者屬性設定來達成
    • 需要引用到Windows API中user32.dll的Get/SetWindowLong
  • 概觀
    • 引用user32.dll中的Get/SetWindowLong
    • 取得欲設定Window之Handle(句抦 簡稱為Hwnd)
    • 使用GetWindowLong對該Hwnd視窗取得-20屬性,該值為可以點擊到的值
    • 將取得的值使用|(or)符號進行|32(就是+32,只是如果本來就點不到會沒事)
    • 使用SetWindowLong將該Hwnd視窗取得值|32後設定回去-20屬性上就會點不到該視窗
  • 實作
文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

  • 透明視窗後 控制功能(拖曳、大小化、關閉還原)請見透明視窗2 補救措施
  • 使用視窗設定
    1. 在Window的Property(屬性)中找到AllowTransparency打勾
    2. 所有要透明的容器(如Grid、Panel等等..)背景設要設定為沒有筆刷(沒有設定)或者全透明(透明度Alpha=0)
    3. WindowStyle設定為None(新版本VisualStudio會自動設定為None)
  • 使用文字編輯XMAL檔設定
文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

  • Class 
    • 宣告
      • class CLASS名稱
        {
            ...內容
        }
    • constructor
      • class CLASS_NAME
        {
            constructor(.../*變數*/...)
            {
                
            }
        }
        
    • method
      • 在Class內部直接寫名字不需要function字樣
      • class CLASS_NAME 
        {
            methodName(.../*變數*/...)
            {
                ...
            }
        }
        
        
         
    • property/atrribute屬性(內部變數)
      • 在任一個method(class 內部function)使用this.變數名稱,就會自動創建,可以在constructor中初始
      •  
        class CLASS_NAME 
        {
            constructor(.../*變數*/...)
            {
                this.property1=0;//number
                this.property2="";//string
            }
        }
        
    • getter與setter
文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

  • 同時
    • 指派
      <=
    • 條件
      輸出 <= 訊號 A when (條件1 ex x='1') else 訊號 B when (條件2 ex x='3') else 訊號 C ;
    • 選擇
      1. with 選擇訊號 select
      2. 輸出<=訊號 A when 選擇的訊號1 ,
      3.             訊號 B when 選擇的訊號2 ,
      4.               ...
      5.             訊號 N when others;
  • 順序
    • 語法宣告
      1. Label : process (Sensitivity List)
      2.            變數宣告
      3. begin
      4.            順序程式
      5. end process Label;
    • 條件
      • if (條件) then 執行 end if;
      • if (條件) then 執行 else 不成立執行 end if;
      • if (條件) then 執行 elsif (條件) then 執行 elsif .... else 都不成立執行 end if ;
    • 選擇
      1. case 選擇訊號 is
      2.     when 選擇的訊號1 =>
      3.         執行;
      4.     when 選擇的訊號2 =>
      5.         執行;
      6.     when others =>
      7.         執行;
      8. end case
    • 迴圈
      • for
        1. for i in startValue to/downto endValue loop
        2.     執行;
        3. end loop;
      • while
        1. while (條件) loop
        2.     執行;
        3. end loop;
      • loop (無限迴圈由next與exit控制)
        1. Label : loop
        2.     next when (條件);--與continue相同
        3.     執行;
        4.     exit when (條件);--與break相同
        5. end loop Label;
    • 等待(delay)
      • Wait Until CLK'event and CLK='1'; --直到條件成立
      • Wait On a,b ; --等待ab訊號
      • Wait For 20ns ; --等待20ns
      • Wait For (a*(b+c)) ; --等後面

擷取自 中正大學VHDL入門

繩繩 發表在 痞客邦 留言(0) 人氣()

 

  • 動態配置空間不會消失,所以使用完用不到需要用free釋放空間
  • 所有配置記憶體函數,都會回傳配置區域第一個指標,若無法配置(Allocate),回傳NULL
  • 所有配置記憶體函數,因回傳為Void*(泛型指標),需用(類型)將回傳指轉型成要存入的指標類型
  • 所有配置記憶體函數,都需宣告一個指標來存取
  • 若直接宣告陣列,該陣列名稱為一個常數位址,動態配置之陣列為變數指標
  • 陣列無法用變數指定大小,而動態配置可以

malloc

  1. malloc會配置所要求的記憶體空間並回傳該區第一個指標,所配置的空間無初始化
  2. 定義的指標=(資料型態*)malloc(要分配的大小) //malloc會回傳所配置的空間第一個位址
  3. sizeof(資料型態) //自動取得該型態大小
  4. (資料型態)//將之後方的東西轉換成該資料型態
文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

  • Apr 15 Sat 2017 16:08
  • 密碼文章 MSP

  • 這是一篇加密文章,請輸入密碼
  • 密碼提示:
  • 請輸入密碼:
  • Mar 23 Thu 2017 17:12
  • 陣列

陣列就是一次宣告很多變數
為什麼要一次宣告很多變數?假設要寫輸入一千筆資料,且每筆資料都要交互運算,那要設int a1,a2,a3....a10000嗎,然後這時候後面的數字不可以是變數,比方說我用一個ai但是你並沒有宣告ai這個變數,但如果使用陣列,就可以填入索引a[i]這樣就會自動變成第i個a
宣告

類型 陣列名稱[長度];
int arr[20];//int 陣列

陣列等同於宣告長度那麼多個變數,只要在中括號內填入數字(也可以是變數),就可以取得變數
陣列的索引是由0~長度-1也就是假如我宣告長度20的arr陣列,則arr[0]~arr[19]存在,arr[20]不存在。
二維陣列
二維陣列跟一維振烈的概念相同,也是宣告很多個變數,只是這個陣列存在兩個索引,所以有平面的感覺
宣告

類型 陣列名稱[長度1][長度2];
long looooooooong[999][5];//long 2維陣列

因為C語言並不實際支援二維陣列,所以二維陣列是由一維陣列模擬的,所以後方括號省略可以單獨形成一維陣列,則該一維陣列為每個第二維陣列
N維陣列
宣告

類型 陣列名稱[長度1][長度2]......[長度n];
char str[20][40][60][80][100];//char 5維陣列

概念同上
初始值
陣列宣告後,與變數相同,可以給予初始值,每個維度用一個大括號包含(一個Set),每個變數的值(一個element)用一個逗號隔開,形成集合表達方式,越後方的中括號為前面中括號的子集合(subset)

類型 陣列名稱[長度]={內容1,內容2,...,內容n}//一維陣列 初始值
類型 陣列名稱[長度1][長度2]={{內容1,內容2,...,內容n(長度2)},{內容1,內容2,....,內容n(長度2)},...,{內容1,內容2,....,內容n(長度2)}(長度1)}//二維陣列 初始值
//...以此類推
int arr[6]={0,1,2,3,4,5};
int arr[3][2]={{0,1},{2,3},{4,5}};
char arr[2][4][3]={{{'s','o',',',},{'n','a','w'},{'a','n','a'},{'w','a','i'}},{{'c','o','o'},{'l','f','a'},{'c','e','b'},{'o','o','k'}}}
文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

  • Mar 18 Sat 2017 14:49
  • 迴圈

迴圈就是某段程式碼要重複執行
C語言分三種迴圈for,while,do..while

基本上,都是只要條件成立就會繼續執行,所以是可以互換的,只差在for跟while是先判斷條件在執行,do...while則是先執行到下面才判斷條件是否成立。

跳脫(break)與繼續(continue)

break; 只要在迴圈內執行這個指令,迴圈就會跳脫(不繼續loop)
continue; 只要在迴圈內執行這個指令,迴圈會直接開始下一圈

迴圈與if相同,只要單行都可以省略大括號

 

for迴圈

for(初始指令;條件;迴圈末端執行指令)
{
    成立時執行的指令;
}

文章標籤

繩繩 發表在 痞客邦 留言(0) 人氣()

1 2