.Net C# interface使用

using System.ServiceModel;

namespace com._80community.unittest.Demo
{
    /*
     * [ServiceContract]服务协定定义
     * [ServiceContract] 这个特性告诉编译器,该类型(指IAnimal)是一个服务契约
     * 
     */
    [ServiceContract]
    public interface IAnimal
    {
        /*
         * [OperationContract]要公开的服务方法 
         * []代表特性继承自System.Attribute类的类,其实特性和注释。类似,是用于描述程序集、类型、成员的“备注信息”,和注释不同的是:注释是给“人”看的,而特性是给“编译器”看的
         * [OperationContract] 这个特性告诉编译器,该成员(指Function1)是一个操作契约,这样在编程的时候,用反射机制可以判断出,哪些类型标记过服务契约,哪些成员标记过操作契约,在WCF中会找到这些做服务
         * [OperationContract] 他这句会执行什么代码,在WCF中,会找出所有标记OperationContract特性的成员作为服务
         */
        [OperationContract]
        string Behavior();
    }
}
View Code
namespace com._80community.unittest.Demo
{
    public class Dog : IAnimal
    {
        public string Behavior()
        {
            return "我白天睡觉,晚上看家。";
        }
    }
}
View Code
namespace com._80community.unittest.Demo
{
    public class Cat : IAnimal
    {
        public string Behavior()
        {
            return "我白天睡觉,晚上出来抓老鼠。";
        }
    }
}
View Code
namespace com._80community.unittest.Demo
{
    public class Mouse : IAnimal
    {
        public string Behavior()
        {
            return "我白天睡觉,晚上出来找粮食吃。";
        }
    }
}
View Code
 [TestMethod]
        public void Test9()
        {
            Dog dog = new Dog();
            var a = dog.Behavior();//我白天睡觉,晚上看家。

            Cat cat = new Cat();
            var b = cat.Behavior();//我白天睡觉,晚上出来抓老鼠。

            Mouse mouse = new Mouse();
            var c = mouse.Behavior();//我白天睡觉,晚上出来找粮食吃。

            //
        }
View Code

猜你喜欢

转载自www.cnblogs.com/hofmann/p/11275200.html