0
votes

Comment réparer l'opérateur '==' est ambigu des opérandes de type Ulong et longue

Je construis actuellement une nouvelle commande dans mon serveur de discord et je suis en difficulté pour convertir l'Userid Retour au surnom de l'utilisateur sur mon serveur.

Je reçois un opérateur de message d'erreur '==' est ambigu des opérandes de type ulong et long

pourrait m'aider à comprendre ce que j'ai fait de mal xxx


3 commentaires

où (x => x.id = meuble) cela ne compilera pas.


Où (x => x.id = meuble) devrait être où (x => x.id == membre). Vous utilisez l'opérateur d'affectation (=), devez utiliser un comparateur (==).


Ongle, ça a fait le tour !, merci!


3 Réponses :


3
votes

dans le .where (x => x.id = mordid) code>, vous devez utiliser == code> pour comparer au lieu de = code> ( Attribution) comme vous l'avez fait auparavant.

var memberId = reader.GetInt64(0);
// search for the user just a single time!
var user = Context.Guild.Users.First(x => x.Id == memberId);

// apply the rule to define the name string
string name = @string.IsNullOrEmpty(user.Nickname) ? user.Nickname : user.Username;

var votes = reader.GetInt64(2);
GOTWVote.Add($@"{name} has received {votes} vote(s)");


0 commentaires

0
votes

Essayez de casting Michaid à un ulong (ou uint64 ) de sorte que le type correspond à x.id : < Pré> XXX

En outre, vous avez quelques autres choses à réparer comme l'autre réponse et commentaires suggèrent. ;)


0 commentaires

0
votes

La première étape consiste à lancer pour résoudre l'opérateur ambigu. Ensuite, réorganisez votre requête pour vous débarrasser des deux sous-sollicitations supplémentaires:

Int64 memberId = reader.GetInt64(0);
var user = Context.Guild.Users
    .Where(x => x.Id == (UInt64)memberId)
    .First();

string name = 
    user.Nickname != null 
        ? user.Nickname 
        : user.Username;

Int64 votes = reader.GetInt64(2);
GOTWVote.Add($@"{name} has received {votes} vote(s)");


1 commentaires

Cela a également fonctionné une fois que j'ai changé uint en uint merci