[筆記]C# Where 泛型類別條件約束
泛型類別條件約束(generic class constraint)用來指定泛型型別參數的約束條件,限制它必須是特定的型別或符合某些條件。
指定泛型型別參數必須繼承自特定的基底類別或介面
1234public class MyClass<T> where T : MyBaseClass{ // MyClass<T> 的程式碼}
MyClass 泛型類別指定了泛型型別參數 T 必須繼承自 MyBaseClass 基底類別。這樣一來,在定義 MyClass 物件時,T 的型別必須符合這個條件,否則就會編譯錯誤。
指定泛型型別參數必須是值型別或可為空的值型別
12345public class MyClass<T> where T : struct{ // MyClass<T> 的程式碼}
MyClass 泛型類別指定了泛型型別參數 T 必須是值型別或可為空的值型別。這樣一來,在定義 MyClass 物件時,T 的型別必須符合這個條件,否則就會編譯錯誤。
指定泛型型別參數必須有預設的 ...
[筆記]C# out、ref關鍵字差異
out 關鍵字out 關鍵字表示該參數是一個輸出參數,方法將為其賦值。使用 out 關鍵字的參數在方法調用之前不需要賦值。在方法內部,out 參數必須賦值,否則編譯器會報錯。以下是使用 out 關鍵字的範例:
12345678void Calculate(int input, out int output){ output = input * 2;}int input = 5;int result;Calculate(input, out result);
上面範例中,Calculate 方法帶有一個 input 參數和一個 out output 參數。Calculate 方法內部賦值了 output 參數,因此可以在方法調用後使用 result 變數來獲取方法的計算結果。
ref 關鍵字ref 關鍵字則表示該參數是一個引用參數,方法可以修改其值並且這些修改也會影響到參數的原始值。使用 ref 關鍵字的參數必須在方法調用之前賦值。以下是使用 ref 關鍵字的範例:
1234567void Increment(ref int value){ va ...
[筆記]C# 實體化與抽象化
實體類別實體類別是具體的類別,可以直接實例化為物件,並對其進行操作。實體類別可以包含屬性、方法、事件等成員,並且可以被其他類別繼承。以下是一個示例:
123456789101112131415161718public class Person{ public string Name { get; set; } public int Age { get; set; } public void SayHello() { Console.WriteLine("Hello, my name is " + Name + " and I am " + Age + " years old."); }}// 實例化一個Person物件Person p = new Person();p.Name = "John";p.Age = 30;// 呼叫方法p.SayHello();
抽象類別抽象類別是一種特 ...
【旅遊】日本入境 Visit Japan Web (無需使用)
Visit Japan WebVisit Japan Web 是由日本政府推出,可以從上面填寫檢疫、入境、申報等手續。目前有成田國際機場、羽田機場、關西國際機場、中部國際機場、福岡機場、新千歲機場、那霸機場可以使用 Visit Japan Web 檢疫。
網址 : https://vjw-lp.digital.go.jp/en/
一、同行家人Visit Japan Web 功能只能給 嬰兒、無法自行辦理的人使用,若一般使用者還是建議一人為原則申請。
二、三大重點入境前必須要完成以下三大重點才能快速入境,原則上疫苗必須要使用數位疫苗申請。
檢疫手續 (疫苗證明)
入境紀錄
海關申報
三、申請新增入境
檢疫手續申請數位新冠病毒健康證明申請 : 點選我
入境紀錄
海關申報海關申報部分較為簡單,依據選擇做填寫即可。
使用心得到達日本並非只需要看 “檢疫手續(快速通關)” 手續,順序會是 “檢疫手續” > “外國人入境紀錄” > “攜帶品、後送物品申報” 三個項目會按照順序使用,所以到現場使用 “截圖” 還不夠出境。
以下請準備項目、動作
Wifi 請在下飛機打開,並將截圖 ...
【前端】三大前端框架 - 安裝/環境設定
前言近期安排特殊的行程,我會把 React、Vue 、Angular 三大架框玩過一輪,在分析各式的架框使用的方式。我們就直接先從React先下手。本篇教學如何安裝 三大架框環境,後續再針對架構探討。
基本安裝以下我會使用的工具,依據讀者的習慣分配自己的工具。
Node.js (必)
Git
VS Code
安裝環境時,請確認 node 版本在進行下方作業。
1npm -v
一、React官方網連結:[ https://zh-hant.reactjs.org/ ]
1 安裝/創建 React安裝 React 請輸入npx create-react-app [名稱] ,如果有遇到下方錯誤訊息,請參考下方處理方式。
解决npm安装时出现run npm audit fix to fix them, or npm audit for details
安裝完畢後,請移動到指定PATH,指令 :cd [名稱],再來進行npm start開啟網站。
2 結果畫面二、Angular官方網連結:[ https://angular.io/ ]
1 安裝/創建 Angula ...
C# 表單驗證 - FormsAuthentication 驗證自動登入
前言最近需要開始撰寫 ASP.Net MVC,目前遇到Form驗證實例會有自動驗證登入,藉由這次機會來展現身手。
FormsAuthenticationTicket功能主要紀錄使用者資訊,他會有一組Cookies暫存,內部值會經過加密編碼、解密。如果第一次使用這個功能,千萬記住不要嘗試把密碼填入當中。
使用方式從 Client 點入登入網頁,這時Controllers可以進行驗證判斷,若有取得ticket成功會轉到首頁或是會員頁面;若驗證失敗則重新登入。
Authorize 身分驗證確保不讓外界隨意登入,需要再 Controllers上方輸入 Authorize,如果沒有登入成功會有訊息提示。
12345678 namespace ExampleForm.Controllers{ [Authorize()] public class MainController : Controller { return View(); }}
WebConfig 設定這邊需要加入錯誤導向頁面設定。
12345<sys ...
Angular (一) -練習Router使用方式
前言Angular 近期蠻多公司願意使用的一項框架,他使用Type-Script 來開發是一個好的選擇,後期其他前台框架陸續更近所以差異就不會太大。PS: 目前不介紹TS使用方式。
AngularAngular 是基於 TypeScript 的開發平台。通常是指 “Angular 2+” 或 “Angular v2 及更高版本,框架由 Google 的 Angular 團隊以及社群共同領導。
上圖。Angular 應用的架構。其主要的構造塊是模組、組件、模板、元資料、資料繫結、指令、服務和依賴注入。
前置作業
NodeJs
VSC
VSC Marketplace
安裝指令:必須要先安裝NodeJs才能執行。npm install @angular/cli
創建專案創建專案也是相對簡單,本篇範例是用 version 14 如果不知道自己版本可以使用ng v。
指令為 ng new [source name] 即可,14版本會詢問是否要routing 以及css,記得要把routing 允許以及選擇自己比較熟悉的css。
1ng new useAngular
創建Pages第一次 ...
VTuber 零成本製作(一) - 建立角色
前言去年製作 製作 Scanner 章節,想到 VTuber 製作部分可以直接使用這些工具嘗試製作。本作者不是專業VTuber 製作師不適合直接使用 Live2D 製作,因此用快速建檔方式完成建模。
(如果使用需要使用工具就需要自備)
相關章節
製作 Scanner (一) - 把手機轉換電腦攝影機
製作 Scanner (二) - 快速使用讀取器/掃描器 (使用 html5-qrcode )
需要使用工具
Dev47Apps、手機
VRoid Studio、VRoid Hub
VRoidVRoid 是一套免費軟體的VTuber 製作軟體,初期需要從這邊建立簡單人物。下圖為初起介面。
一、創建角色(角色配置不詳細介紹自行挖掘、製作)
二、匯出角色這邊會需要創建 VRM 副檔名,需要確認匯出是否是VRM 。如果要使用 VRoid Hub 也是一樣,至指定角色頁面按下下載即可。
VTuber 零成本製作(二) - 直播設定
前言繼續上一篇未完成部分安裝 VMagicMirror ,這軟體主要是補助角色在直播中使用你創建的角色直播,需要配合 OBS 來完成直播功能。
安裝 VMagicMirror下載點 : 請點擊
一、VMagicMirror初始會有兩個畫面存在,左邊會是創建角色的呈現位置,右邊則是設定檔。現在我們將剛才的VRM檔案開啟。
讀取完後,立即可以呈現目前角色模樣。(目前先不使用 Dev47App )
二、使用 OBS現在使用 【視窗攝取】方式設定 VMagicMirror 視窗,就會完成以上動作。
如果需要移除後面的綠色背景請將透明背景打給即可。
SourceTree (一) - 創建多層次 branch
近期因工作需要換 Git 工具,從 Github Desktop 轉換到 SourceTree 工具,目前最吸引的部分是圖形(Graph)部分非常好分析 branch marge 狀況以及 branch 使用狀況。這篇簡單操作 “創建多層次 branch”。
SourceTree 是以 Git 為基礎設計的 GUI 圖形化工具。與 Github Desktop 比較上 Github Desktop 缺少圖形化介面缺乏管理、維護。
官方網址SourceTree : https://www.sourcetreeapp.com/
安裝方式step.1 註冊bitbucket 與 github 是同類型的工具,採用 Mercurial 和Git 作為版控部分。這邊就請自行註冊。
step.2 安裝工具
進階選項-備註來自 Sourcetree - git 的 GUI 管理軟體
第一項如果勾選的話會在 checkout ( 切換 commit ) 的時候,自動將斷行符號由 LF ( linux ) 轉成 CRLF ( windows ),如果是在 linux 的系統上安裝則相反,選擇這個的好處 ...