簡體   English   中英

C#:這個語句是做什么的? dynObj.@switch == 1? 真假

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM