6

ビジュアルスタジオで問題が発生し、同じパラメータータイプのメンバーを定義したと言い続けています。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 の [シンボルの検索] 結果ウィンドウに複数の結果が表示されます。

于 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ファイルが含まれていました。したがって、同じ部分クラス定義を効果的に 2 回含めていたため、「既に定義されている」エラーが発生しました。

これが他の誰かをどのように助けるか!

于 2014-04-17T08:39:25.117 に答える
0

私の場合、このエラーの理由は最終的にこれと同じくらい単純でした。DB プロジェクトの EDMX に新しい DB テーブルを追加しました。メソッドを使用してクラスを生成するボックスに誤ってチェックを入れてしまいました (ただし、これらはプロジェクトで既に生成されています)。この後の EDMX ファイルには、AB.Context.tt と AB.xxx.Context.tt という名前の似た 2 つのクラスが含まれており、両方に同じメソッドが含まれていました。クラスが部分的だったため、前述のエラーが発生しました。

解決策は、誤って新たに追加されたセカンダリ AB.xxx.Contex.tt ファイルを削除し、プロジェクトを再構築することでした。

于 2019-12-18T14:02:01.107 に答える