Blazor RPS应用同命名空间下Enum无法找到的问题
Blazor石头剪刀布应用中同命名空间Enum无法识别的解决办法
问题场景
开发Blazor RPS应用时,创建了Options枚举类,和主文件同属RockPaperScissors.Client命名空间,但调用时提示找不到,而同命名空间的Hand类可正常使用。
排查及解决步骤
检查Enum文件的生成操作
右键Enum文件→属性,确认「生成操作」设置为编译,若设置为其他(如“内容”)会导致该文件不被编译,自然无法识别。清理重建项目
依次执行:- 右键解决方案→清理解决方案
- 右键解决方案→重建解决方案
- 重启IDE,避免缓存导致的识别异常
校验命名空间一致性
确认主文件和Enum文件的命名空间完全一致,C#对命名空间大小写敏感,检查是否存在拼写或大小写错误。尝试静态引用Enum
在@code块顶部添加using static RockPaperScissors.Client.Options;,之后直接使用Rock、Paper等枚举值,验证是否能正常识别,以此排查命名空间引用问题。
相关代码
主文件:
@using RockPaperScissors.Client @code { List<Hand> OpponentHandOptions = new List<Hand>() { new Hand {Choice=Options.Rock, WinAgainst=Options.Scissors, LoseAgainst=Options.Paper, Image="Rock.png"}, new Hand {Choice=Options.Paper, WinAgainst=Options.Rock, LoseAgainst=Options.Scissors, Image="Paper.png"}, new Hand {Choice=Options.Scissors, WinAgainst=Options.Paper, LoseAgainst=Options.Rock, Image="Scissors.png"} }; }
Enum文件:
namespace RockPaperScissors.Client { public enum Options { Rock, Paper, Scissors } }
内容的提问来源于stack exchange,提问作者Saucter
相关产品推荐
相关产品推荐

