2014-01-21 4 views
2

Я создал свой проект в vs2008.It работает отлично. Но когда я открыл решение и попытался его построить в vs2012, я получаю следующую ошибку на странице TransactionDB.dbml.Ошибка при построении решения в vs2012?

a partial method may not have multiple defining declarations 

В чем проблема?

+0

http://msdn.microsoft.com/en-us/library/bb513873.aspx –

ответ

0

.net поддерживает частичные методы. Это означает, что вы пишете определение в одной части частичного класса и реализации в другом. Например:

partial class MyClass 
    { 
     partial void MyPartialMethod(string s); 
    } 

    // This part can be in a separate file. 
    partial class MyClass 
    { 
     // Comment out this method and the program will still compile. 
     partial void MyPartialMethod(string s) 
     { 
      Console.WriteLine("Something happened: {0}", s); 
     } 
    } 

В вашем случае у вас есть два определения частичного метода, приводящих к сбою компилятора.

0

Источник MSDN

Определяющей декларации частичного метода является та часть, которая определяет метод подписи, но не реализация (метод тела). Частичный метод должен иметь ровно одно определяющее объявление для каждой уникальной сигнатуры. Каждая перегруженная версия частичного метода должна иметь свою собственную определяющую декларацию.

Чтобы исправить эту ошибку

Снимите все, кроме одного, определяющего декларацию для частичного метода.

Пример

// cs0756.cs 
using System; 

    public partial class C 
    { 
     partial void Part(); 
     partial void Part(); // CS0756 
     public static int Main() 
     { 
      return 1; 
     } 
    } 
Смежные вопросы