当前位置:编程学习 > C#/ASP.NET >>

求助,C#.net 怎么实现接口!!!

就是怎么写一个 接口,,然后怎么调用?
求  这 两部分的代码示例.....不要整个很长的,功能很复杂的,简单点的  比如 我调用这个  接口 ,然后给我返回  一句话  就好了!!!谢谢了  --------------------编程问答-------------------- public interface ITest
{
 //接口代码
  string SayHello(string name);
}

public class Test:Itest
{
//实现接口中的所有方法
 public string SayHello(string name)
{
  return "Hello "+name;
}
} --------------------编程问答--------------------

   public class Student:IAblity
    {
        public string name { get; set; }

        public void Eat()
        {
            Console.WriteLine("实现接口Eat能力");
        }
    }
    public class Teacher
    {
        public string name { get; set; }
    }

    public interface IAblity
    {
        public void Eat();
    };
--------------------编程问答-------------------- 如果代码是利用MVC 格式 层次分明的话  可以在写个Service层   
在逻辑层 利用Service层来调用 接口 

--------------------编程问答-------------------- 你是指这个?

using System;
using System.Collections.Generic;
using System.Text;
using Galsun.HH.FCX.Mode;
using System.Reflection;

namespace Galsun.HH.FCX.DALFactory
{

    /// <summary>
    /// 
    /// 此文件由模型系统生成,注释根据数据库的扩展字段MS_Description得到  模型转换V2.0 作者:刘朝林
    /// 生成时间:2012-12-28 17:29:03
    /// </summary>
    public interface Iba_county
    {
        ba_countyinfo GetInfoByID(string cond);
        ba_countyinfo GetInfoByID(string cond, ba_countyinfo param);
        IList<ba_countyinfo> GetInfoList(int pageindex, int pagesize, string ordfid, string cond);
        IList<ba_countyinfo> GetInfoList(int pageindex, int pagesize, string ordfid, string cond, ba_countyinfo param);
        int GetRowCount(string cond);
        int GetRowCount(string cond, ba_countyinfo param);
        int Create(ba_countyinfo info);
        int Update(ba_countyinfo info, string cond);
        int Delete(string cond);
        int Delete(string cond, ba_countyinfo param);
    }

    public sealed partial class DataAccess
    {
        /// <summary>
        /// 获取ba_county相应接口
        /// </summary>
        /// <returns></returns>
        public static Iba_county CreateIba_county()
        {
            string className = path + ".ba_county";
            return (Iba_county)Assembly.Load(path).CreateInstance(className);
        }
    }
}



然后是实现

using System;
using System.Collections.Generic;
using System.Text;
using Galsun.DALProfile;
using Galsun.HH.FCX.DALFactory;
using Galsun.HH.FCX.Mode;
using System.Reflection;

namespace Galsun.HH.FCX.DALSQLServer
{

    /// <summary>
    /// 
    /// 此文件由模型系统生成,注释根据数据库的扩展字段MS_Description得到  模型转换V2.0 作者:刘朝林
    /// 生成时间:2013-3-8 15:57:30
    /// </summary>
    public class ba_county:Iba_county
    {
        private DBTool dal = new DBTool();
        /// <summary>
        /// 根据条件获取信息
        /// </summary>
        /// <param name="cond">栓索条件</param>
        /// <returns></returns>
        public ba_countyinfo GetInfoByID(string cond)
        {
            string _cond = cond == null ? "" : cond;
            if (_cond.Length>0 && !_cond.ToLower().Contains("where"))
                _cond = " where " + _cond;

            string query = string.Format("Select top 1 * From [ba_county] {0}", _cond);
            Type type = Assembly.Load("Galsun.HH.FCX.Mode").CreateInstance("Galsun.HH.FCX.Mode.ba_countyinfo").GetType();
            return dal.GetModelList<ba_countyinfo>(query, type);
        }
        /// <summary>
        /// 根据条件获取信息
        /// </summary>
        /// <param name="cond">检索条件</param>
        /// <param name="param">SQL形参参数</param>
        /// <returns></returns>
        public ba_countyinfo GetInfoByID(string cond, ba_countyinfo param)
        {
            string _cond = cond == null ? "" : cond;
            if (_cond.Length>0 && !_cond.ToLower().Contains("where"))
                _cond = " where " + _cond;

            string query = string.Format("Select top 1 * From [ba_county] {0}", _cond);
            Type type = Assembly.Load("Galsun.HH.FCX.Mode").CreateInstance("Galsun.HH.FCX.Mode.ba_countyinfo").GetType();
            return dal.GetModelList<ba_countyinfo>(query, dal.SetValueParam(param), type);
        }
        /// <summary>
        /// 获取信息列表
        /// </summary>
        /// <param name="pageindex">分页索引</param>
        /// <param name="pagesize">页面大小</param>
        /// <param name="ordfid">排序字段(必须的)</param>
        /// <param name="cond">检索条件</param>
        /// <returns></returns>
        public IList<ba_countyinfo> GetInfoList(int pageindex, int pagesize, string ordfid, string cond)
        {
            Type type = Assembly.Load("Galsun.HH.FCX.Mode").CreateInstance("Galsun.HH.FCX.Mode.ba_countyinfo").GetType();
            return dal.GetModelList<ba_countyinfo>("[ba_county]", pageindex, pagesize, ordfid, cond, type);
        }
        /// <summary>
        /// 获取信息列表
        /// </summary>
        /// <param name="pageindex">分页索引</param>
        /// <param name="pagesize">页面大小</param>
        /// <param name="ordfid">排序字段(必须的)</param>
        /// <param name="cond">检索条件</param>
        /// <param name="param">SQL形参参数</param>
        /// <returns></returns>
        public IList<ba_countyinfo> GetInfoList(int pageindex, int pagesize, string ordfid, string cond, ba_countyinfo param)
        {
            Type type = Assembly.Load("Galsun.HH.FCX.Mode").CreateInstance("Galsun.HH.FCX.Mode.ba_countyinfo").GetType();
            return dal.GetModelList<ba_countyinfo>("[ba_county]", pageindex, pagesize, ordfid, cond, dal.SetValueParam(param), type);
        }
        /// <summary>
        /// 获取记录数
        /// </summary>
        /// <param name="cond">检索条件</param>
        /// <returns></returns>
        public int GetRowCount(string cond)
        {
            return dal.GetRowCount("[ba_county]", cond);
        }
        /// <summary>
        /// 获取记录数
        /// </summary>
        /// <param name="cond">检索条件</param>
        /// <param name="param">SQL形参参数</param>
        /// <returns></returns>
        public int GetRowCount(string cond, ba_countyinfo param)
        {
            return dal.GetRowCount("[ba_county]", cond, dal.SetValueParam(param));
        }
        /// <summary>
        /// 创建记录
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public int Create(ba_countyinfo info)
        {
            string query = "Insert Into [ba_county]([cCountyCode],[cCountyName],[cMarketCode],[cDCCode],[OrderID]) "
            + "values (@cCountyCode,@cCountyName,@cMarketCode,@cDCCode,@OrderID)";

            return dal.ExecuteNonQuery(query, dal.SetValueParam(info));
        }
        /// <summary>
        /// 修改记录
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public int Update(ba_countyinfo info, string cond)
        {
            string _cond = cond == null ? "" : cond;
            if (_cond.Length>0 && !_cond.ToLower().Contains("where"))
                _cond = " where " + _cond;
            string query ="Update [ba_county] Set  [cCountyCode]=@cCountyCode, [cCountyName]=@cCountyName, [cMarketCode]=@cMarketCode, [cDCCode]=@cDCCode, [OrderID]=@OrderID"
                + _cond ;
            return dal.ExecuteNonQuery(query, dal.SetValueParam(info));
        }
        /// <summary>
        /// 删除记录
        /// </summary>
        /// <param name="cond">检索条件</param>
        /// <returns></returns>
        public int Delete(string cond)
        {
            string _cond = cond == null ? "" : cond;
            if (_cond.Length>0 && !_cond.ToLower().Contains("where"))
                _cond = " where " + _cond;
            string query = string.Format("DELETE From [ba_county] {0}", _cond);
            return dal.ExecuteNonQuery(query, null);
        }
        /// <summary>
        /// 删除记录
        /// </summary>
        /// <param name="cond">检索条件</param>
        /// <param name="param">SQL形参参数</param>
        /// <returns></returns>
        public int Delete(string cond, ba_countyinfo param)
        {
            string _cond = cond == null ? "" : cond;
            if (_cond.Length>0 && !_cond.ToLower().Contains("where"))
                _cond = " where " + _cond;
            string query = string.Format("DELETE From [ba_county] {0}", _cond);
            return dal.ExecuteNonQuery(query, dal.SetValueParam(param));
        }
    }
}



这里需要注意, ba_county必需要完成Iba_county中所定义的所有方法

最后是业务逻辑层的调用接口进行编程


namespace Galsun.HH.FCX.Content
{
    /// <summary>
    /// 县区管理
    /// </summary>
    public class County
    {
        Iba_county icounty = DataAccess.CreateIba_county();
        /// <summary>
        /// 创建县区档案
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public bool Create(ba_countyinfo info)
        {

            if (icounty.Create(info) > 0)
            {
                clearCache();
                return true;
            }
            return false;
        }
       ......



这样做能就达到Content和DALSQLServer同步进行,分工合作

--------------------编程问答-------------------- interface IProgram
    {
        void Fun();
    }
    class Program:IProgram
    {
         //显式实现接口成员
        void IProgram.Fun()
        {
            Console.WriteLine("I am Fun.");
        }
        staticvoid Main(string[] args)
        {
            IProgram p =new Program();  //声明一个接口实例,但不是对接口进行实例化
            p.Fun();
            Console.Read();
        }
    }



我学接口用到看了这两个网。
http://www.cnblogs.com/jiajiayuan/archive/2011/09/16/2178462.html
http://www.cnblogs.com/ben-zhang/archive/2012/12/18/2823455.html --------------------编程问答-------------------- 参考大约40个asp.net应用接口的例子:
http://www.cnblogs.com/insus/category/308317.html
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,