小编Gui*_*rez的帖子

将匿名类数组传递给方法并循环 c#

我是 c# 的新手,想问你一些事情,请帮忙。

我使用如下匿名类创建了一个包含 3 个人的变量:

var personas = new[] { 
                new {nombre = "Guillermo", apellido = "Pérez", edad = 37}
                , new {nombre = "Juan", apellido = "García", edad = 27}
                , new {nombre = "Maria", apellido = "Rosina", edad = 47}
            };
Run Code Online (Sandbox Code Playgroud)

现在,我尝试迭代这些项目中的每一个,我做到了(使用以下代码)

for (int i = 0; i < personas.Length; i++)
{
    var persona = personas[i];
    Console.WriteLine("{0} {1} tiene {2} años.", persona.nombre, persona.apellido, persona.edad);
}
Run Code Online (Sandbox Code Playgroud)

当我想创建一个方法来做我对最后一段代码所做的事情时,问题就出现了,这个想法是创建一个方法并将这个对象(在本例中为角色)传递给该方法并在内部执行循环。我所做的是这样的:

 showPersonas(personas);

 static void showPersonas(object[] personsList)        {

        for (int i = 0; …
Run Code Online (Sandbox Code Playgroud)

c# loops anonymous class

3
推荐指数
1
解决办法
393
查看次数

ValidationAttribute 在 Blazor 上部分工作或不工作?

我正在尝试解决在尝试使用 blazor 在我女儿的狗店上执行自定义验证属性时发现的问题。

基本上我有一个属性如下:

[Test]
public int? PetAge { get; set; }
Run Code Online (Sandbox Code Playgroud)

如您所见,我将创建一个名为“Test”的自定义属性,因此我创建了一个新类,如下所示:

public class Test : ValidationAttribute
{

    protected override ValidationResult? IsValid(object? value, ValidationContext validationContext)
    {
        return new ValidationResult("niet! niet!");
    }
}
Run Code Online (Sandbox Code Playgroud)

我的理解是,我可以返回一个带有字符串消息的新 ValidationResult,或者如果一切顺利,我可以返回 ValidationResult.Success。在我的示例中,它应该始终返回问题,因为除了始终返回验证结果之外,我们没有提供任何其他逻辑。

运行此代码时,它根本不返回任何内容,表单上也没有显示任何错误。现在我注意到的是,如果我使用 IsValid 方法的其他版本,它会起作用,唯一的问题是我想发回自定义消息而不仅仅是真/假结果。其工作原理如下:

public override bool IsValid(object? value)
    {
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我必须在参数中提供错误消息,如下所示:

[Test(ErrorMessage("this is not ok!")]
    public int? PetAge { get; set; }
Run Code Online (Sandbox Code Playgroud)

由于这些参数必须是常量,因此这是一个很棒的想法,不仅能够将自定义消息显示为错误和/或访问上下文等......

我在 Blazor 应用程序上做错了什么吗?任何帮助将不胜感激!

c# blazor-server-side

2
推荐指数
1
解决办法
791
查看次数

标签 统计

c# ×2

anonymous ×1

blazor-server-side ×1

class ×1

loops ×1