[C#] 雜項筆記

  • 63
  • 0
  • C#
  • 2023-12-13

C#各項雜項筆記

● Q. 開發C#執行檔,選哪種專案類型?

● A. 如圖


● Q. 開發C#執行檔,裡面有個vba資料夾放置會用到的巨集程式(.xlam),結果更新其檔案後,執行跑出錯誤。

● A. 在Visual Studio中,在方案總管裡,顯示隱藏的資料夾,將vba資料夾加入至專案,然後點選其巨集程式的屬性,將「複製到輸出目錄」改為「一律複製」,這樣bin\Debug裡的vba資料夾才會一起更新~

補充. 到時佈署到主機時,要有至少下面三個:
1. vba folder
2. .dll
3. .exe


● Q.如何套用nuget 在公司不開放直接visual stduio下載的狀況下,以下以 dapper為例

● A. 說明如下:

  1. D槽建個 DLL \ nuget資料夾
  2. 網頁(https://www.nuget.org/packages/Dapper/)右側download > download package,放入 1.
  3. 回到visual studio,在要引用的專案裡,工具> nuget套件管理員 > 套件來源 > 新增一個來源是來自 D:\DLL\nuget 并勾選這個新來源
  4. 工具 > nuget套件管理員 > 管理方案的nuget套件 > 勾選Dapper
  5. 去 方案總管 看一下 參考,就可以看到 Dapper

● Q.有些程式碼希望在DEBUG模式執行,有些希望在Release模式執行,可以怎麼辦?

● A. 可以運用 #if DEBUG - #else - #endif

//以下為例,file要接第一個參數,但測試時,想先寫個測試file路徑時,可以這樣寫。

string file;

#if DEBUG
	file = "D:\\Lisa\\excel.xlsx";
#else
	file = args[0];
#endif

● Q. 建立Class時,有需要建立List<string>時,需在哪寫new?

● A. Class_CataTable.cs 如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace myNamespace 
{
    internal class Class_Table
    {
        public int Id { get; set; }
        public string col1 { get; set; }
        public string col2 { get; set; }
        public string col3 { get; set; }
        public List<string> listCol { get; set; }


        //可以直接寫在class裡面,創建一物件時,就new好listCol
        public Class_Table()
        {
            listCol = new List<string>();
        }

    }
}