无法在c#中的另一个dll文件中引用dll文件

时间:2015-10-18 11:26:45

标签: c# .net dll

我是初学者,我正在使用记事本制作一个简单的计算器。它有3个文件。 1.第一个文件有一些函数,如加法,减法等编译为dll文件。

  1. 第二个文件也有菜单,加法,减法等功能。此文件也编译为库文件,并添加第一个文件的引用。
  2. 现在,当我尝试在第二个文件中添加第一个文件的引用时,我收到错误。

      

    错误cs0143:“计算器”类型(第一个文件)没有   构造函数定义。

    如何删除此错误?

    Calculator.cs

    using System;
    public class Calculator 
    {   
        public double Addition(double x, double y)
        {
            return x+y;
        }      
        public double Subtraction(double x, double y)
        {
            return x-y;
        }
        public double Multiplication(double x, double y)
        {
            return x*y;
        }
        public double Division(double x, double y)
        {
            return x/y;
        }
        public double Mod(double x, double y)
        {
            return x%y;
        }
    }
    

    CalculatorUI.cs

    using System;
    public class CalculatorUI
    {
        Calculator a=new Calculator();
        public void Menu()
        {
            Console.WriteLine("1: Addition");
            Console.WriteLine("2: Subtraction");
            Console.WriteLine("3: Multiplication");
            Console.WriteLine("4: Division");
            Console.WriteLine("5: Mod");
            Console.WriteLine("6: Square Root");
            Console.WriteLine("7: Exit");
            Console.WriteLine("Press any key to continue . . . ");
        }   
    
        private void Addition(string[] args)
        {   
            Console.WriteLine("Enter First Value : ");
            double num1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Enter Second Value : ");
            double num2 = Convert.ToInt32(Console.ReadLine());
            double ans=a.Addition(num1,num2);
            Console.WriteLine("The Answer is ---> "+ans);
        }
    
        private void Subtraction(string[] args)
        {
            Console.WriteLine("Enter First Value : ");
            double num1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Enter Second Value : ");
            double num2 = Convert.ToInt32(Console.ReadLine());
            double ans=a.Subtraction(num1,num2);
            Console.WriteLine("The Answer is ---> "+ans);
        }
        private void Multiplication(string[] args)
        {
            Console.WriteLine("Enter First Value : ");
            double num1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Enter Second Value : ");
            double num2= Convert.ToInt32(Console.ReadLine());
            double ans=a.Multiplication(num1,num2);
            Console.WriteLine("The Answer is ---> "+ans);
        }
    
        private void Division(string[] args)
        {
            Console.WriteLine("Enter First Value : ");
            double num1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Enter Second Value : ");
            double num2 = Convert.ToInt32(Console.ReadLine());
            double ans=a.Division(num1,num2);
            Console.WriteLine("The Answer is ---> "+ans);
        }
    
        private void Mod(string[] args)
        {
            Console.WriteLine("Enter First Value : ");
            double num1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Enter Second Value : ");
            double num2 = Convert.ToInt32(Console.ReadLine());
            double ans=a.Mod(num1,num2);
            Console.WriteLine("The Answer is ---> "+ans);
        }
    }    
    

1 个答案:

答案 0 :(得分:-1)

从答案编号3 in here开始,如果您编译.NET 4或更高版本并且将Interop类型嵌入到托管程序集中,则可能会出现此错误。 从msdn开始,默认设置为false,因此请检查您是否在链接器的参数上将其设置为true。