a est une propriété de chaîne sur votre type anonyme
private void button4_Click(object sender, EventArgs e)
{
test((new { a = "asd" }).a);
}
private void test(string a)
{
}
Edition: Les types anonymes ne dérivent pas de quoi que ce soit autre que l'objet de sorte que vous ne pouvez pas créer une méthode qui attend un paramètre de type anonyme.
Édition 2: lorsque vous créez un type anonyme, le compilateur crée un type entièrement nouveau basé sur les propriétés que vous avez définies et l'ordre dans lequel elles apparaissent. Vous ne pouvez pas créer un type anonyme et l'utiliser à la place de tout autre type (autre que l'objet). Le scénario le plus courant dans lequel je les ai utilisés est celui de la liaison lorsque vous devez aplatir votre graphique d'objets.
avertissement, je suis horrible à venir avec de bons exemples de scénarios et tout cela est de la mémoire! par exemple si j'avais une liste d'objets personne qui avaient une propriété de nom et une propriété d'adresse contenant l'adresse de la rue et nécessaires pour se lier à une zone de liste
var people = new List<Person>()
listbox.TextMember = "Text";
listbox.ValueMember = "Value"
listbox.DataSource = from p in people
select new { Text = p.Name, Value = p.Address.StreetAddress };
@Venr, Ceci ne fonctionnera pas avec un tableau de chaînes []. –
@ Venr, merci pour la mise à jour! Vous semblez être le seul à toujours voir cette question.J'ai compris à partir des réponses ci-dessus que le paramètre dans le "test" de vide devrait être object.So j'ai un paramètre - object.Je veux passer un tableau string [] en utilisant un type anonyme, comment? –
@ John, si vous avez une méthode qui prend un tableau de chaînes comme paramètre, transmettez-lui un tableau de chaînes. Vous ne créez pas un type anonyme pour cela, généralement vous créez un type anonyme car vous souhaitez un conteneur de propriétés personnalisées. mais juste pour des raisons d'argument, définissez votre type anonyme pour inclure une propriété string [] ou construisez une nouvelle chaîne [] avec la propriété string de votre type anonyme et passez-la à la méthode. – Venr