REMARQUE: Cela semble être un problème avec le compilateur utilisé avec les projets SSDT, il est apparemment résolu dans le RC 2017. Mon problème est similaire à celui décrit here.Impossible d'écrire un membre de la fonction à corps d'expression
J'ai du code qui refuse de me laisser l'écrire en tant que membre de la fonction corps-expression. En bref, je veux faire:
void foo() => bar();
Mais l'IDE jette une crise de colère et exige que je l'écris comme ceci:
void foo() { bar(); }
Je veux dire que, ce sont deux caractères supplémentaires, mais je ne suis pas sûr pourquoi il se plaint, les erreurs n'ont pas de sens non plus. Il me donne les 3 erreurs suivantes:
- CS0000:;
- CS0000: La méthode doit avoir un type de retour.
- CS0000: identificateur attendu.
Le code complet ressemble à ceci. J'ai testé ce dans la fenêtre interactive C# et tout compile et s'exécute correctement. Je ne trouve aucun caractère non imprimable dans le code.
est d'utiliser VS communauté 2015 avec le cadre cible étant 4.6.1
code complet:
using System.Data.SqlClient;
using Microsoft.SqlServer.Server;
public partial class Triggers
{
private const string ConnectionString = "context connection = true";
private const string ReadInsertedTable = @"
SELECT ID,
(
SELECT *
FROM inserted AS b
WHERE a.ID = b.ID
FOR XML RAW, ELEMENTS XSINIL
)
FROM inserted AS a
";
[SqlTrigger(Name = "Person_Insert", Target = "Person", Event = "FOR INSERT")]
public static void Person_Insert() => AuditInsert(TableName); // All errors here.
private const string TableName = "Person";
private static void AuditInsert(string tableName)
{
using (var readConnection = new SqlConnection(ConnectionString))
using (var writeConnection = new SqlConnection(ConnectionString))
{
using (var readCommand = new SqlCommand(ReadInsertedTable, readConnection))
{
readConnection.Open();
using (var reader = readCommand.ExecuteReader())
{
SqlContext.Pipe.Send((reader));
}
}
}
}
}
Mise à jour: code compile à l'aide de l'utilitaire msbuild mais échoue encore dans Visual Studio.
J'ai copié votre code sur mon vs et il a compilé sans erreurs –
Une idée où commencer même à chercher pour essayer de résoudre ce problème? Parce que CS0000 ne semble même pas être un code normal. Je vais ajouter une image de mon IDE. – Jake
quelle version de VS utilisez-vous? Notez que les membres de corps d'expression sont des caractéristiques de ** C# 6 ** donc cela ne fonctionne pas sur les anciens IDE –