今天很意外的看到這篇文章
[C#.NET][VB.NET] 自訂控制項的顯示視窗屬性 /User Control of Properties(一)
原本是想查詢[是否能在設計屬性的時候,利用Attribute來設計預設值]
這部分有點像是之前在設計自訂的ConfigurationSection時,
可以設定自己的預設值。
不過,後來問林大哥後,好像是沒有這樣的東西?
我先把這個過程記錄下來,留給以後參考。
另外前面提到這篇文章,之前也看過有機會用到時可以參考。XD
2010-11-23
2010-11-18
c#委派寫法(整理心得筆記)
今天一早比較有空的時候,邊吃著早餐邊拜讀Huan-Lian大大寫的這篇文章
Huan-Lin 學習筆記: C# 筆記:重訪委派-從 C# 1.0 到 2.0 到 3.0
(迷之音:早餐配這種很枯燥的東西,不怕沒胃口嗎?XD)
不過還好Huan-Lian大大寫的滿淺顯易懂的,倒是很有趣的帶過整個委派寫法的演變。
先來簡單做個心得筆記,怕自己以後會忘掉,先記錄下來。
首先設計一個資料物件(MyObject)供範例使用。
C# 1.0 委派寫法
C# 2.0 委派寫法
(1) Delegate新寫法
另外甚至於可以直接這樣寫-> objCollection.Find(FindObject2)即可
(2) Anonymous 寫法
C#3.0 委派寫法(這部分就完全是看網頁上說明了!!)
可以簡化寫成如下表示
省略定義targetObj型態和return
看完以上的寫法後,我在想若可以的話以後會盡量使用Lambda寫法。
簡單記錄下,提供以後參考。
2010-11-14
解決專案中不同Naming的問題
問題:
專案遇到一個滿棘手的問題,原本使用者需求希望我們產生的表單編號是(合約編號-四碼流水號)
假設合約編號是XR-332211,那所產生的表單單號為XR-332211-0001,這是原先的需求。
但是需求總是會變動的,這次使用者又覺得說這樣的表單單號太長,因為受限於一些環境需求,
而我們被迫要變動我們的程式。。。
若我們根據新需求來變動,那接下來問題又來了,若是現在這個專案是這樣,另外一個專案又需要另外的命名規則時,
我們是不是又要變動程式碼?這對我們程式設計師來說,最不希望看到的現象[不停的在修改我們的程式]。
解決方案:
跟林大哥討論完之後,他給我一個架構如下
我們在程式裡面針對Naming Rule設計一個合約(INaming),一個很簡單的GetName Method
接下來,我們實際設計一個Naming的物件(NC6Naming),並實作INaming的GetName
在這個物件中,建構式變成很重要的一個角色,
因為這裡需要別的地方提供所有可以供Naming的資料,
(此例中SpoolBaseObj有許多可以提供Naming的資料)
然後在ClientAPI中利用Reflect來操作IName取得表單命名字串。
這樣若往後需要不同的專案時,可以再新增Naming的物件,
只要在ClientAPI中,告訴它要使用的是哪一個Naming物件,就可以不用到修改原始程式碼,
又能接受這樣的需求變更。