1

別のクラスから Monsters と呼ばれるにアクセスしようとするとenum、Visual Studio で "型または名前空間名 'Monsters' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)" というエラーが表示されます。using私のクラスに関連付けられています。

ここに私の列挙型コードがあります:

namespace Zadify.Enums
{
    public enum Monsters
    {
        Zombie,
        Skeleton,
        Mummy,
        Robot,
        Demon
    }
}

そして、ここからアクセスする必要がある私のクラスは次のとおりです。

using System;
using System.Xml.Serialization;
using Zadify.Enums;

namespace Zadify
{
    [Serializable]
    public abstract class Goal
    {
        //Properties, Other methods

        public void AssignMonsterData(int rank)
        {
            var random = new Random();

            var monsterTypeValues = Enum.GetValues(typeof (Monsters)); //Gives the error on "Monsters" here
            var monster = (Monsters) monsterTypeValues.GetValue(random.Next(rank - 1)); //Also gives the error on this "Monsters"

            //Do other stuff
        }

後でswitchonを実行しましたが、 、 などmonsterを使用するたびに問題ないようです。他にもいくつかあり、すべて正常に動作し、実際、このクラスではまったく同じコードを使用しています。Monsters.ZombieMonsters.SkeletonenumsZadify.Enums

これまでのところ、列挙型を変更してその新しいにnamespace追加し、別のファイルにコピーし、プロジェクトをクリーンアップし、100回再構築しようとしました。これらのクラスには Android コードはありませんが、私は Visual Studio 2010 を使用して Android アプリ用の Mono を作成しています。usingnamespaceMonsters

ビルドするまで Visual Studio に問題はないようです。前もって、インテリセンスは正常に動作します。行を取り出すとusing Zadify.Enums;、それが参照したいものかどうか尋ねられ、Ctrl キーを押しながらクリックすると、適切なファイルが表示されます。

他に提供すべきコードがある場合は、お知らせください。

4

4 に答える 4

1

@ZAD-Man、クライアント プロファイルの設定を確認してください。

  1. プロジェクトを右クリック
  2. [アプリケーション] タブにいる必要があります
  3. ターゲット フレームワークのドロップダウンを見てください。

に設定されてい.Net Framework xx Client Profileますか?Visual Studio が私のプロジェクトをデフォルトで設定する前に、奇妙な問題に遭遇しました....Net Framework 4クライアント プロファイル部分なしで変更してみて、それが機能するかどうかを確認してください。

探している画面は次のようなものです。

ここに画像の説明を入力

于 2013-02-26T05:32:10.380 に答える
0

だから、私はばかげた間違いを犯したことがわかりました。Goal.cs別のプロジェクトにリンクとして追加しましたが、列挙型をリンクするのを忘れていました。他の人が問題を抱えていなかった唯一の理由は、それが引っかかってMonsters他の人を見ていないからです。それはリンクだったので、例外をクリックすると実際の に移動しただけだったGoal.csので、問題はそのプロジェクトにあると思いましたが、よく見ると別のプロジェクトであることがわかりました。

于 2013-02-26T22:33:27.713 に答える
0

これが発生する理由は、クラスがクラス ライブラリに追加されていないためです。また、参照にこのクラスライブラリが追加されているかどうかも確認してください。

于 2013-02-26T03:49:21.593 に答える