Я не говорю о JavaScript, но в JavaScript, я могу объявить string
так:Shorthand отлить строковое значение
var identity = {
getUserId: function() {
return 'userid';
}
};
var userid = identity.getUserId() || '';
Это означает, что: если identity.getUserId()
является нулевым или не определено, то значение будет ''
автоматически отбрасываться до userid
.
Сейчас, в C#:
public static void AddOnlineUser(this IIdentity identity)
{
string userid = identity.GetUserId();
// long way to check userid is null or not:
if (string.IsNullOrEmpty(userid))
{
userid = "";
}
// invalid C# syntax:
// Operator || cannot be applied to operands of type 'string' and 'string'
// string userid = idenity.GetUserId() || "";
// Only assignment, call, increment, decrement, and new object expressions can be used as a statement
// string.IsNullOrEmpty(userid) ? "" : userid;
}
Я не имею в виду: want to create a C# variable same as javascript syntax
. Но в этом случае есть способ отличить значение ""
до userid
, если он пуст или пуст в 1 строке?
Большое спасибо! Это поможет :) –
Имейте в виду, что описанная версия с нулевым коалесценцией работает только в том случае, если 'identity.GetUserId()' возвращает значение null, а не пустую строку в случае, когда он не может получить идентификатор пользователя. В этом случае результат совершенно прекрасен, так как это пустая строка в любом случае, но в других сценариях, которые могут привести к очень нежелательному поведению и совсем не соответствовать поведению JavaScript. –
Исправьте оба аккаунта. Я думал, что я разъясняю, что при использовании фразы «для обработки нулевых значений». Тройной подход, вероятно, будет самым близким эквивалентом того, что ищет OP. –