2013-12-15 61 views
-1

在下面的代码中,我得到的错误是二元运算符的参数之一必须是包含类型 代码有什么问题?运算符重载 - 连接两个字符串

public class Nest 
{ 
    public string a = "Test"; 
    public string b = "Code"; 
} 

class OperatorOverload 
{ 
    public static void Main(string[] args) 
    { 
     Nest n = new Nest(); 
     Console.WriteLine("Enter first string"); 
     n.a = Console.ReadLine(); 
     Console.WriteLine("Enter second string"); 
     n.b = Console.ReadLine(); 
     Console.WriteLine(n.a + n.b); 

    } 
    public static string operator + (string a, string b) 
    { 
     a = string.Concat(b); 
     a = string.Concat(a); 
     return a; 
    } 
} 
+0

你是否在做操作符重载,因为你可以或因为你必须? –

回答

0

那么,如果,如果是我,我会凌驾于巢ToString(),返回String.Concat(a,b)

当你为它添加c属性时,可以节省大量的麻烦。

+0

那真是一个惊喜!欢迎来到避免运营商超载,除非你必须俱乐部。 –

0

MSDN

使用操作关键字重载一个内置的操作或提供在a classstruct声明一个用户定义的转换。 你在做什么是错的,你应该在课堂上的MSDN文档,例如定义它像