第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

動(dòng)態(tài)調(diào)用兩個(gè)方法之一

動(dòng)態(tài)調(diào)用兩個(gè)方法之一

PHP
躍然一笑 2024-01-20 15:40:13
有沒有辦法轉(zhuǎn)換這個(gè) if/else 語(yǔ)句,以便可以在不使用反射的情況下以更動(dòng)態(tài)的方式調(diào)用它?if (left.IsColliding()) directions.Remove(Direction.Left); else directions.Add(Direction.Left);在 JavaScript 中我可以執(zhí)行以下操作,我想知道 C# 中是否有類似的操作。directions[left.IsColliding() ? "Remove" : "Add"](Direction.Left);
查看完整描述

3 回答

?
小怪獸愛吃肉

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊

在 C# 中不可能。


你的代碼有什么問題嗎?它很好而且很簡(jiǎn)單。


javascript 版本丑陋且存在問題,因?yàn)槭褂糜簿幋a的字符串來調(diào)用方法是潛在的錯(cuò)誤來源,并且無(wú)法維護(hù)。


但你可以這樣寫:


switch ( left.IsColliding() )

{

  case true:

    directions.Remove(Direction.Left);

    break;

  case false:

    directions.Add(Direction.Left);

    break;

}


查看完整回答
反對(duì) 回復(fù) 2024-01-20
?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊

看一下Func<T, TResult>

它讓您可以定義一個(gè)函數(shù),然后稍后調(diào)用它。

因此,您可以將字符串中的“Remove”和“Add”函數(shù)作為Dictionary<string, Func<T, TResult>.

您可以使用與 JavaScript 相同的語(yǔ)法來使用三元。所以你只需使用它而不是 if 語(yǔ)句。

查看完整回答
反對(duì) 回復(fù) 2024-01-20
?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊

三元運(yùn)算符必須返回一些東西。您可以執(zhí)行類似的操作來返回Action具有您正在尋找的效果的委托:


int a = 5;

int b = 10;

(a == b ? (Action)doThis : doThat)();

其中doThis和doThat是方法。


查看完整回答
反對(duì) 回復(fù) 2024-01-20
  • 3 回答
  • 0 關(guān)注
  • 228 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)