[解決済み] タイプ 'customtype' を 'othercustomtype' に暗黙的に変換することはできません。
2022-02-01 14:30:37
質問
私はC#の初心者です。Personsクラスと、Personsクラスを継承したUserクラスを持っています。私のコンソールでは、配列にユーザーを入力しています。そして、ユーザー配列にあるユーザーにノートを追加するには、ユーザーIDを入力するだけです。Personsクラスでは、このユーザーがusers配列にあるかどうかを検索する関数を持っています。
public static Persons FindPerson(Persons[] persons, int noteid)
{
foreach (Persons person in persons)
if (person.ID == noteid) return person;
return null;
}
Userクラスでは、users配列にあるidを取得するまで、idの入力をすべてループする関数を持っています。
public static User SelectUser(User[] users)
{
while (true)
{
Console.Write("Please enter the User id: ");
string input = Console.ReadLine();
int id;
if (int.TryParse(input, out id))
{
Persons person = Persons.FindPerson(users, id);
if (person != null) return person; // fail on "return person"
}
Console.WriteLine("The User does not exist. Please try again.");
}
}
このエラーメッセージは、if 文の "return person" で表示されることを除けば、すべてうまく動作しています。
タイプ 'UserCustomerNotes.Persons' を 'UserCustomerNotes.User' に暗黙的に変換することはできません。明示的な変換が存在します(キャストが抜けていませんか?)
どなたか助けてください。よろしくお願いします。
解決方法は?
なぜなら
Person
は必ずしも
User
を暗黙のうちに変換することはできません。
Person
を
User
. あなたの場合
知っている
のリストを持っています。
User
というように、明示的に指示することができます。
Person
は、実は
User
"を使用しています。
if (person != null)
return (User) person;
キャスト(
(User)
でない場合は、実行時に例外がスローされます。
User
のコレクションから始めているので、そのようなことはありません。
User
のようなもので、心配する必要はありません。
関連
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み] Interopタイプの組み込みができない
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] DateTime型の誕生日から年齢を計算するにはどうしたらいいですか?
-
[解決済み] C++でintをstringに変換する最も簡単な方法
-
[解決済み] 型チェック:typeof、GetType、is?
-
[解決済み] 2つのリストを辞書に変換するにはどうしたらいいですか?
-
[解決済み] UTF-8 byte[]を文字列に変換する方法
-
[解決済み] JavaでStringをInputStreamに変換する方法を教えてください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】"出力タイプがクラスライブラリのプロジェクトは直接起動できない"
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み] メンバー '<メンバー名>' にインスタンス参照でアクセスできない
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015