6

我在 Visual Studio 中遇到问题,它一直说我定义了一个具有相同参数类型的成员。我是 C# 编程的新手,我真的不知道该怎么做。这些是正在发生的错误:

错误 1 ​​类型“Secret.AddPage”已经定义了一个名为“AddPage”的成员,具有相同的参数类型

错误 2 类型“Secret.AddPage”已经定义了一个名为“PhoneApplicationPage_Loaded”的成员,具有相同的参数类型

这是我到目前为止编写的代码,非常感谢任何帮助。

enter code here

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using System.Device.Location;

namespace secret
{
public partial class AddPage : PhoneApplicationPage
{
    private string location = "";

    public AddPage()
    {
        InitializeComponent();

        GeoCoordinateWatcher myWatcher = new GeoCoordinateWatcher();
        var myPosition = myWatcher.Position;

        // Eftersom koden körs i emulatorn kan den inte få tillgång till riktiga GPS-värden
        // Därför hårdkodas koordinaterna till slottet i Gamla stan så att MSR MAPS Web Services
        //kan testas.

        double latitude = 40.717;
        double longitude = -74;

        if (!myPosition.Location.IsUnknown)
        {
            latitude = myPosition.Location.Latitude;
            longitude = myPosition.Location.Longitude;
        }

        myTerraService.TerraServiceSoapClient client = new myTerraService.TerraServiceSoapClient();

        client.ConvertLonLatPtToNearestPlaceCompleted += new EventHandler<myTerraService.ConvertLonLatPtToNearestPlaceCompletedEventArgs>(client_ConvertLonLatPtToNearestPlaceCompleted);

        client.ConvertLonLatPtToNearestPlaceAsync(new myTerraService.LonLatPt { Lat = latitude, Lon = longitude });
    }

    void client_ConvertLonLatPtToNearestPlaceCompleted(object sender, myTerraService.ConvertLonLatPtToNearestPlaceCompletedEventArgs e)
    {
        location = e.Result;

        //throw new NotImplementedException();
    }


    private void AppBar_Cancel_Click(object sender, EventArgs e)
    {
        navigateBack();
    }

    private void AppBar_Save_Click(object sender, EventArgs e)
    { // spara en ny anteckning

        if (location.Trim().Length == 0)
        {
            location = "Okänd";
        }

        navigateBack();

    }
    private void navigateBack()
    {
        NavigationService.Navigate(new Uri("/secret;component/NotesMainPage.xaml", UriKind.Relative));
    }

    private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
        editTextBox.Focus();

    }
}
}
4

5 回答 5

14

您正在创建一个部分类,因此您可能在另一个源文件中为您的部分类定义了这些成员。

您可以查看解决方案资源管理器,找到该源文件并将其从那里删除,或者您可以从当前部分类中删除这些成员。

您可能会看到:部分类和方法(C# 编程指南)

要搜索包含部分类的其他源文件,请右键单击类名AddPage并选择Go to Definition. 您将在 Visual Studio 的 Find Symbol 结果窗口中看到多个结果。

于 2012-11-05T17:25:07.433 回答
2

检查您已经在其中定义了AddPage()构造函数或PhoneApplicationPage_Loaded()方法的另一个部分类。您可以通过Ctrl+F并搜索方法签名的解决方案来实现此目的:

public AddPage()

PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
于 2012-11-05T17:25:25.280 回答
0

我最近有一些非常相似的东西,结果发现在导入现有代码文件时我已经导入了obj目录本身! 视觉工作室屏幕截图

例如,该目录包含自动生成(并自动导入)的MainWindow.g.i.cs文件。所以我两次有效地包含了相同的部分类定义,因此出现了“已经定义”的错误。

这对其他人有何帮助!

于 2014-04-17T08:39:25.117 回答
0

我有一个项目,我在记事本++中打开了主program.cs,进行了一些编辑并“另存为”以在同一文件夹中复制文件。我后来在 Visual Studio 中打开了同一个项目,并在尝试编译时遇到了同样的错误。我只需要通过右键单击问题文件并选择“从项目中排除”来排除我从项目中复制创建的文件。做了一个构建和中提琴!该副本仍在文件夹中,只是未包含在构建中。 排除文件的屏幕截图

于 2019-02-06T04:25:08.387 回答
0

就我而言,这个错误的原因最终就这么简单。我在我的数据库项目中向我的 EDMX 添加了一个新的数据库表。我不小心勾选了使用方法生成类的框(但这些已经在项目中生成了)。之后的 EDMX 文件包含两个名称相似的类 AB.Context.tt 和 AB.xxx.Context.tt,并且都包含相同的方法。由于课程是部分的,因此出现了上述错误。

解决方案是删除意外和新添加的辅助 AB.xxx.Contex.tt 文件并重建项目。

于 2019-12-18T14:02:01.107 回答