Skip to Content
撰文於銘 飄散隨風 心行無語 仰首蒼穹

C# WinForm 取得傳入的參數

C# WinForm 程式要取得使用者傳入的參數,可以使用

 

Environment.GetCommandLineArgs();

 

所取得的第一個元素就是執行檔的檔案名稱。

 

 

public MainForm()

{

    InitializeComponent();

    string[] args = Environment.GetCommandLineArgs();

    foreach(string s in args) {

        MessageBox.Show(s);

    }

}

 

另一種在網路上常看到的方法,就是手動在 Main 主程式的參數中加上 string[] args。

這個方式取得的參數,並不包含執行檔的檔案名稱,這是和上面方法不同的地方,在使用上要注意。

 

[STAThread]

static void Main(string[] args)

{

    foreach(string s in args) {

        MessageBox.Show(s);

    }

    Application.EnableVisualStyles();

    Application.SetCompatibleTextRenderingDefault(false);

    Application.Run(new MainForm());

}

 

 

C# 單元測試

C# 單元測試

參考:

https://docs.microsoft.com/zh-tw/visualstudio/test/getting-started-with-unit-testing?view=vs-2019&tabs=mstest

 

建立測試程式

先建立測試程式

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace UnitTest {

    public class Sample {

 

        int a = 0;

        int b = 0;

 

        public Sample(int x, int y) {

            a = x;

            b = y;

        }

 

        public int Add() {

            return a + b;

        }

 

        public int Add2() {

            return a * 2 + b * 2;

        }

 

        public int AddAnother (int x) {

            return a + b + x;

        }

    }

}

 

建立測試單元

在程式視窗中按滑鼠右鍵,選擇「建立單元測試」

 

在 Visual Studio 上使用 GitHub 進行版本控制

本文簡單示範 Visual Studio 建立 C# 專案並使用 GitHub 基本功能。

雖然 Windows 的 TortoiseGit 很好用,但如果可以直接在 Visual Studio 上直接操作,那還是比較方便。

建立專案

 

論「慾境的當下即是涅槃」?

 
在瀚邦佛學研究中心看到蘇錦坤師兄貼出這篇討論
 
 
提到溫金柯依《雜阿含262經》提出「慾境的當下即是涅槃」。
 
看了一下他的理由,大概是出自這一句:
 
「一切諸行空、寂、不可得、愛盡、離欲、涅槃」
 
我想這裡應該是溫師兄對雜阿經這句有所誤解,誤以為一切諸行=空=寂=不可得=愛盡=離欲=涅槃。
 
而慾境也是諸行,所以在一連串的相等之下,有了慾境=涅槃的推論,所以提出『慾境的當下即是涅槃』。
 
然而此處的經文真的是這樣解釋的嗎?

HTML 標記 li 底下 span 指定文字格式的奇怪問題

有人發現一個 CSS 排版的問題,後來我發現,只要是這樣 

<ul><li><span class="abc">一堆文字....一堆文字....<a>一堆文字</a>....</span>

在 css 中指定 li 底下 span 的文字大小, 例如

.abc {font-size: 30px; }

而那一堆文字中若有一些標記,不只是 <a>, 我試過 <b> 甚至 <c>,標起來的文字都會上移,不過要夠長,捲到第二行之後才會看到。

底下是測試截圖,我加了下底線。

Chrome 和 Edge 都會如此,IE 則不會。

找了一些類似的資料,還不知真正的原因,但 css 這樣設定就可以解決

li span { display:block; }

結果截圖如下:

不過會不會有什麼副作用就不清楚了。

第三世多杰羌佛義雲高背離佛法之處

 
最近又看到義雲高的信眾在網路上宣傳他們的上師,對於自稱是第三世多杰羌佛的義雲高,在此我引用一些基本教義來指出他們的問題。
 
*** ***
 
1 佛法教導中最重要的核心就是「涅槃」,在三法印中被描述為「涅槃寂靜」,意思也就是不再輪迴轉世、不再出生、不受後有。
 
在佛教中,有三類聖者皆是如此,即佛陀、辟支佛、阿羅漢,這三類聖者皆不可能再輪迴轉世。
 
也許有一種情況,就是佛陀可能會以本尊或分身至他方世界隨緣教化,或現出家身、或現居士身,但不可能是重新出生轉世,因為這已違反佛教根本教理。
 
所以號稱第三世多杰羌佛的義雲高應該算是附佛外道了,因為他的存在方式就違背佛教三法印了。
 

Swift 使用 ZipArchive 解/壓縮檔案

工作中有需要使用到壓縮與解壓縮 zip 檔案,原本 Mac 以為內建的壓縮功能就可以做到,如下:

https://developer.apple.com/documentation/compression

結果試了半天,也查了一堆資料,好像都無法做到。在查詢資料的過程中,也看到很多人推薦 ZipArchive,我也就用它來測試了。

https://github.com/ZipArchive/ZipArchive

ZipArchive 是 Objective-C 寫的專案,我是要用 Swift 去執行,底下記錄了詳細過程。如果對於 Swift 連結 Objective-C 想多了解一點,可參考這篇:Swift 連結 Swift、Objective-C、C++

ZipArchive 的 Github 專案上有教導如何安裝使用,因為我沒有使用其他安裝工具,所以我採取手動安裝,它主要方法有四:

  1. Add the SSZipArchive and minizip folders to your project.

  2. Add the libz and libiconv libraries to your target.

  3. Add the Security framework to your target.

  4. Add the following GCC_PREPROCESSOR_DEFINITIONS: HAVE_INTTYPES_H HAVE_PKCRYPT HAVE_STDINT_H HAVE_WZAES HAVE_ZLIB $(inherited).

 

底下逐一記錄過程。

Swift 連結 Swift、Objective-C、C++

本篇在說明 Swift 連結其他專案的 Swift、Objective-C、C++ 的方法與注意事項。

 

Swift 連結其他 Swift

 

假設有一個目錄 testClass,底下有三個程式 

 

main.swift

person.swift

year.swift

 

其中 person.swift 會使用 year.swift 的內容,現在新的專案需要用到 person.swift 與 year.swift。

 

要加入檔案或目錄時,要選擇 Xcode 功能表的

 

File -> Add Files to "myProject"...

 

此時有這些選擇,通常我都不選 Copy ites if needed,以免被引用的專案後來有更新時,引用的專案還是用已經複製進來的舊版資料。當然,這功能我也不清楚,也許未來真的有需要使用的機會。

 

由武漢肺炎病毒談業力藏在哪裡

武漢肺炎病毒

在佛法中有個議題,就是五蘊身心若都是剎那生滅,而佛教又談因果業力,那麼業力究竟藏在哪裡?

在後期佛法中,提出了阿賴耶識,用它來解釋「業」的儲藏,簡單的說,就是你造了善惡業,就把業存在阿賴耶識中,人雖然會生死,但阿賴耶識是不會隨著人的死亡而消失的,若有一天因緣成熟了,不管是在這一世或未來世,業的作用就出現了,這也就是善、惡果報成熟。

我不是研究阿賴耶識的人,所以了解極有限,只知道大概是如此解釋的。

不管上面解釋是不是正確,阿賴耶識最大的問題是它被稱為第八識,而傳統佛法是「六識論」,雖然研究阿賴耶識的人提出各種論述來解釋,但簡單的數學就是 8 > 6,且 8 ≠ 6,硬要在六識的教導中引用第八識來說明,總是讓人不易接受,尤其是對那些信仰傳統佛法的人。

將 CheckBox 嵌入 TableView 中使用

在看此篇之前,一些基本的重點要先參考「Mac Cocoa NSTableView 程式與綁定
 
這一段是記錄把 CheckBox 放在 TableView 中使用所遇到的一些狀況。

這是一個標準的 Column 設計。

首先把紅色的部份移除,換成 CheckBox,如下圖。

註:其實還有一種方法,就是不移除 Table Cell View,只移除 Table View Cell,然後用 CheckBox 取代 Table View Cell。底下程式也會需要修改。

然後設定 CheckBox 的 Identifier,本例為 tableCheck。

訂閱文章


by Dr. Radut