1

だから私は自分のプロジェクトにいくつかのArrayListsを使用しようとしています.msdn Webページに行き、syntaxを探しました。しかし、それを適用した後、エラー リストは 18 個のエラーをスローします。そのうち 16 個は「WindowsFormsApplication7.clsAL」がインターフェイス メンバー「System.ICloneable.Clone()」を実装していません」などに関するもので、そのうちの 2 個は「型または名前空間」に関するものです。 name 'ComVisibleAttribute' または 'ComVisibleAttributeAttribute' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)" . これは私のコードです:

using System;
using System.Collections;
using System.Collections.Generic;

namespace WindowsFormsApplication7
{
    [SerializableAttribute]

    class clsAL : IList, ICollection, IEnumerable, ICloneable
    {


   public ArrayList dir = new ArrayList();
      public ArrayList time = new ArrayList();
    }



    }
//    

何か不足していますか?

4

2 に答える 2

3

あなたはおそらくArrayList Classを見ました:

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class ArrayList : IList, ICollection, 
      IEnumerable, ICloneable

したがって、明らかに、コードで 2 つのことを行いました。

  1. 使用された変数dirtimeArrayList(これだけが必要です)
  2. これらすべてのインターフェースをクラス宣言に追加して、 ArrayList(まったく異なるタスク、これを使用する必要はありません)を再実装しようとしました。ArrayList

使用ArrayListするために、クラスでインターフェイスを実装する (および/または属性を使用する) 必要はなく、によって実装 (使用) されArrayistます。したがって、クラス宣言からそれらを削除するだけです:

//all attributes removed
class clsAL //all interfaces removed
{
    public ArrayList dir = new ArrayList();
    public ArrayList time = new ArrayList();

}

クラスに何らかのインターフェースを実装する必要がある場合は、実際の実装 (明示的または暗黙的) を含める必要があります。Interfaces (C# Programming Guide)をお読みください。

interface IFoo
{
    void FooMethod();
}

class Foo : IFoo
{
    public Foo() { }

    public void FooMethod()
    {
        //actual IFoo implementation by Foo
    }
}
于 2012-11-23T00:46:42.707 に答える
0

ええ、何かが足りないと思います。

一連のインターフェイスを実装していますが、実際にはそれらのインターフェイスが期待するものをオーバーライド (または指定) していません。インターフェイスを実装するという目的全体を打ち負かすようなものです...

于 2012-11-23T00:46:42.173 に答える