[英]C#: What is this statement doing? dynObj.@switch == 1 ? true : false
我最近接手了一些代碼,遇到了一個我不確定它在做什么的聲明,所以我決定發布它。
currCarbon.CleanGeneration = ( dynObj.@switch == 1?true: false);
由於 'dynObj' 是一個動態 object 持有一個 json 值,它是否在檢查 'dynObj' 是否包含一個 'Switch' 鍵/值?
謝謝你的幫助!
dynamic dynObj = GetValues();
if (dynObj != null) //json string from API
{
// Read the first record's carbon index
var prevCarbon = _dbContext.WatttimeApilog.OrderByDescending(c => c.CreatedDate).FirstOrDefault();
if (prevCarbon == null) //NO previous carbon value from database
{
//Plug in default values
currCarbon.Percentage = defaultPercent;
currCarbon.CleanGeneration = false;
currCarbon.Rating = defaultRating;
currCarbon.ValidUntil = DateTime.UtcNow;
insertFlag = true;
}
else
{
currCarbon.Percentage = dynObj.percent;
currCarbon.CleanGeneration = (dynObj.@switch == 1 ? true : false);
currCarbon.Rating = Convert.ToByte(dynObj.rating);
currCarbon.ValidUntil = dynObj.validUntil;
}
它通過三元運算符根據@switch
是否等於 1 將CleanGeneration
設置為 true 或 false。
編輯:代碼不是最干凈的,可以縮短為currCarbon.CleanGeneration = dynObj.@switch == 1;
鏈接的是關於三元運算符的文檔: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/conditional-operator
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.