亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問C# 接口如何調用?

請問C# 接口如何調用?

滄海一幻覺 2018-11-21 20:19:32
我發現一個問題定義了一個接口:interface aa{void add();}定義一個類繼承接口class bb:aa{public void add(){messeagebox.show("接口");}}我發現程序里有人這樣就可以調用aa at=new aa();at.add();求原理沒錯的,我確實看到他是這么用的,不過他開頭有個初始化aa at= IoC.Resolve<aa>();也許在這里做了什么東西
查看完整描述

1 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

我們定義一個接口
public interface IBark
{
void Bark();
}
再定義一個類,繼承于IBark,并且必需實現其中的Bark()方法
public class Dog:IBark
{
public Dog()
{}
public void Bark()
{
Consol.write("汪汪");
}
}
然后,聲明Dog的一個實例,并調用Bark()方法
Dog 旺財=new Dog();
旺財.Bark();
從接口的定義方面來說,接口其實就是類和類之間的一種協定,一種約束.還拿上面的例子來說.所有繼承了IBark接口的類中必需實現Bark()方法.那么從用戶(使用類的用戶)的角度來說,如果他知道了某個類是繼承于IBark接口,那么他就可以放心大膽的調用Bark()方法,而不用管Bark()方法具體是如何實現的.比如,我們另外寫了一個類.
public class Cat:IBark
{
public Cat()
{}
public void Bark()
{
Consol.write("喵喵");
}
}

一個接口
using System;
using System.Collections.Generic;
using System.Text;
namespace com.zh.jieKou
{
interface jieKou
{
void add();
void delte();
}
}

下面是較常用的使用方法
using System;
namespace ClassLibrary2
{
interface IEmploy //接口
{
void Speak(); //方法
}
class Hello:IEmploy //Hello類實現接口
{
public void Speak() //實現方法
{
Console.WriteLine("Hello:朋友");
}
}
class Sorry:IEmploy //Sorry類實現接口
{
public void Speak() //實現方法
{
Console.WriteLine("Sorry:朋友");
}
}
}
實現
//直接調用
IEmploy Ie = new Hello();
Ie.Speak(); //調用Hello類實現的接口
IEmploy Ie = new Sorry();
Ie.Speak();
//反射調用 記住反射的空間引用 using System.Reflection;
Assembly Asm = Assembly.Load("ClassLibrary2");//反射出空間
Type type = Asm.GetType("ClassLibrary2.Hello");//反射出空間下的類
object AssClas = Activator.CreateInstance(type);//動態實力化反射回來的指定空間下的指定類
IEmploy Ie = (IEmploy)AssClas; ////轉換為接口類型
//常用的就這幾種方法



查看完整回答
反對 回復 2018-12-15
  • 1 回答
  • 0 關注
  • 1355 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號