美文网首页
C#封装Dll 与调用

C#封装Dll 与调用

作者: min_dou | 来源:发表于2019-04-26 09:57 被阅读0次

    使用V s 新建项目 类库 ,


    553.png

    在新建的类中, 添加自己的 定义的方法
    要对外暴露的方法定义为public 不暴露的私有方法定义为private
    因为封装的dll 要与Electron 框架的桌面应用对接,所以尝试了 封装了异步方法
    在网上简单的了解一下异步编程, 他的作用和thread 相似 异步的出现是thread 的升级版 thread 对有返回值的 类型的委托 没有办法解决, 而async 他做到了,( 对于有返回值类型的委托使用Task对象就能简单的解决),
    1.async:修饰符可将方法、lambda 表达式或匿名方法指定为异步。
    2.await:运算符应用于异步方法中的任务,会让当前方法等待其挂起的方法执行完毕后再继续执行当前方法。await关键字只能在async声明的异步方法中使用,方法返回类型必须是Task<T>或Task.
    3 返回值类型, 返回类型只能是void、Task、Task<T> ,如果你要执行的异步方法是有返回值的,那么泛型T就定义为你所需返回的类型
    具体的 方法实现如下

      //返回类型= void的   
        public async static void testVoidAsync()
        {
            await Task.Run(() =>
            {
                Console.WriteLine("void 类型的异步方法");
            });
        }
        //返回类型= task  
        public async static Task testTaskasync()
        {
            await Task.Run(() =>
            {
    
                Console.WriteLine("Task 类型异步方法");
            });
        }
        //返回类型是Task<T>  <object> 可以为任意类型, 必须要有返回值
        public async static Task<int> testTaskT()
        {
            await Task.Run(() =>
            {
                Console.WriteLine("Task<T>类型异步");
            });
            return 3;
        }
        //返回类型是Task<T>且带参数的  object  可以为任意类型 
        public static async Task<object> testAsyncWithParm(object input)
        {
            //以参数为数组 为例
            String[] paramets = (String[])input;
            string adress;
            string phoneNum;
            int age;
            await Task.Run(() =>
            {
                for (int i = 0; i < paramets.Length; i++)
                {
                    adress = paramets[0].ToString();
                    phoneNum = paramets[1].ToString();
                    age = Convert.ToInt32(paramets[2]);
                }
            });
            return null;
        }
    

    异步编程简单的了解到此。
    言归正传到dll 库封装了, 方法已经都准备好了,只欠dll 和demo 验证。 代码编写完成后, 右键解决方案 → 重新生成解决方案或用(F6)快捷键 。
    在 项目中使用自己生成的dll
    右键 解决方案 →添加引用

    730.jpg
    找不到怎么添加如图
    731.png
    找到生成dll 的目录
    364.png
    添加即可。
    引用添加好了 就说调用吧 , 在 引用中 添加 testdll 引用, 实例化对象 , 调用方法。
    以代码中最后一个带参的方法为例简单看一下
    using testDll;
    private void button3_Click(object sender, EventArgs e)
    {
    Test test = new Test();
    string[] parm = new string[] { " 深圳市龙岗区", "1312850XXXX", "28" };
    Task t1 = test.testAsyncWithParm(parm);
    }

    相关文章

      网友评论

          本文标题:C#封装Dll 与调用

          本文链接:https://www.haomeiwen.com/subject/kqxzwqtx.html