IEnumerableの実装をしたいのですが、ネットで見つけたサンプルでエラーが表示されます。他のものもいくつか見て試したのですが、どれもIEnumerator IEnumerable.GetEnumerator()
の実装部分でエラーとなりました。
VSCodeの再起動、コマンドパレットからのomnisharpの再起動は試しましたが効果がなかったです。
コードの掲載元はImplementing an enumerator for a custom object in .NET C#
です。
namespace test { public class Guest { public string Name { get; set; } public int Age { get; set; } } public class Party : IEnumerable<Guest> { private IList<Guest> _guestList; public Party() { _guestList = new List<Guest>(); } public void AddGuest(Guest guest) { _guestList.Add(guest); } public IEnumerator<Guest> GetEnumerator() { foreach (Guest guest in _guestList) { yield return guest; } } // Error1 //Error2 IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } }
Error 1
interface System.Collections.Generic.IEnumerator<out T> Supports a simple iteration over a generic collection. ジェネリック 種類 'IEnumerator<T>' を使用するには、1 型引数が必要です
Error 2
interface System.Collections.Generic.IEnumerable<out T> Exposes the enumerator, which supports a simple iteration over a collection of a specified type. ジェネリック 種類 'IEnumerable<T>' を使用するには、1 型引数が必要です '明示的インターフェイス宣言の中の 'IEnumerable' はインターフェイスではありません
環境
.csproj
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <OutputType>Library</OutputType> <TargetFrameworks>net5.0;netcoreapp3.1;net46;netstandard2.0</TargetFrameworks> </PropertyGroup> </Project>
IEnumerator の名前空間は確認しましたか?
https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.ienumerator?view=net-5.0
回答1件
あなたの回答
tips
プレビュー