2017年6月1日 星期四

[C#]委派

把工作給別人做


先用委派須先宣告方法的參數列及回傳值型態的方法名稱,注意這必須跟所要指派的方法相同
先把委派寫出來
delegate void DemoDelegate(string message);


把別人的方法給委派
第1種方法.
 DemoDelegate d1 = d.DemoDelegateMethod;

第2種方法.
 DemoDelegate d2 = delegate(string message) { System.Console.WriteLine(" " + message); };


使用委派
 d1("There"); d2("is no spoon."); }

[C#]繼承心得


父要被子繼承 加上
父:
virtual
子:
override


禁止被繼承
sealed

sealed 必須跟 override 連用,因此是讓被改寫的方法不可再被改寫。

C#抽象成員心得

  • 抽象成員:只宣告,而沒有實作的成員,抽象類別的子類別必需實作所有的抽象成員

abstract:奘在class,沒有實作,只有先宣告,要被繼承
interface :奘在method ,沒有實作,只有先宣告,要被繼承

C#abstruct心得

如果class B繼承class A,而你不想要求B一定要覆寫什麼A的method,那麼class A是否宣告成abstract class都可以
如果class B繼承class A,而你不想要別人可以new A出來, 那麼class A就可以宣告成abstract class, class A裡不必宣告abstract method
如果class B繼承class A,而你想要 B一定要寫某些 A的method(有點像B實作Ix的味道),那麼class A就可以宣告成abstract class, 並宣告abstract method, 逼class B一定要寫那些method



class abstrate

override

interface

sealed

2017年5月31日 星期三

C#interface 心得

interface 名字A
{
方法名字//不用寫實際做的事情
}
class 名字:名字A

{

方法
{
//實際做的事情
}

}

名字  名字 =new 名字 ; //先實體化你的方法;
名字A 名字A=名字; //把方法給介面;

名字A.方法名字;//換不同方法介面的方法都不用變

介面給類似轉接器,只要改變方法,介面的名字都不用變,聽到的例子,像是不同資料庫連接,可以用介面切換,方面切換方法。


介面像似把方法分成多類別來使用
但也可以在一個類別有很多方法來使用
可能分類上可以把相似的功能但不同名稱分成介面型式
在管理上比較方便


繼承介面的方法其中在方法前面加(介面名)


C# as is

as 和is 都是C#檢查 轉型對不對,不會拋出例外。
as 不兼容拋出null
is 不兼容拋出true or false 對象為空 false

2017年5月25日 星期四

[orcale] 新方法 using Oracle.ManagedDataAccess


重要:
1.在nuget 安裝 Oracle.ManagedDataAccess

using Oracle.ManagedDataAccess


如果有已經安裝很多oracle client


2.在config  給他一個路徑
        <settings>
        <setting name="TNS_ADMIN" value="D:\oracle\product\11.2.0\client_1\network\admin" />
      </settings>
3.在電腦右鍵內容
   系統保護
   進階
   環境變數
   系統環境變數
   新增
   變數名稱:TNS_ADMIN
   變數值:D:\oracle\product\11.2.0\client_1\network\admin


reference:

http://blog.miniasp.com/post/2009/08/31/Solve-ASPNET-cannot-connect-Oracle-DB-using-Development-Server.aspx



http://blog.darkthread.net/post-2015-03-31-managed-odp-net.aspx



https://forums.asp.net/t/1698774.aspx ODP+NET+issue+ASP+NET+Application+on+Windows+Server+2003+R2