gpt4 book ai didi

c# - 在 C# 中通过引用传递对象的标准方法是什么

转载 作者:太空宇宙 更新时间:2023-11-03 18:31:23 24 4
gpt4 key购买 nike

我正在用 C# 为新的 Betfair API 编写一个新的博彩 BOT,并解决过去 BOT 的一些错误,其中有很多循环并将值作为参数传递给方法我试图将所有内容拆分为尽可能多。

一个方法做一件事等等。我还想定义一个 Bet 对象,它在我的“投注”工作流程开始时保存我所有的运行者/比赛/投注信息,并将其传递给每个方法(PlaceBet、CancelBet、CheckBetStatus等)这些值将被更改的地方。我想这样做,以便在流程结束时我知道我的单个 Bet 对象中的所有值都是正确的,因为此时我正在使用大量变量,这些变量在过程中会混淆。

因为在我想知道通过引用传递对象的标准/最佳/官方/最快方法之前,我没有在 C# 中做太多将对象作为引用传递的工作。

我只是做这样的事情吗

public struct Bet = {
public long BetID;
public double BetAmount;
public int MarketID;
public string BetStatus;
}

public BetfairBOT(){
Bet bet = new Bet;
// get info from DB
bet.BetID = 10002323;
bet.BetAmount = 10.00;
bet.MarketID=12342;
bet.BetStatus="";

// get current bet status;
this.GetBetStatus(ref bet);

// if not matched place bet
if(bet.BetStatus != "M"){
this.PlaceBet(ref bet);
}

// save to DB
this.SaveBet(ref bet);
}

private void GetBetStatus(ref Bet bet){
// do some stuff
bet.BetStatus = "U";
return;
}

或者我应该使用 Bet 对象作为方法的返回类型并每次都返回它,例如

// get current bet status; Setting the bet object to the return object which is passed in by reference
bet = this.GetBetStatus(ref bet);

private Bet GetBetStatus(ref Bet bet){
// do some stuff
bet.BetStatus = "U";
// return my changed object
return bet;
}

还是我应该用其他方式来做?

我还应该使用“out”参数而不是“ref”吗?

我只想知道通过引用传递对象并返回它们的“公认”“最佳实践”方式,这样我就不会在过程中丢失任何数据。

顺便说一句,在这个编辑器中没有更好的格式化代码的方法吗?我试过缩进一些结束括号,但它们只是不想成为它们上方代码块的一部分。

我可以使用 [code] 标签吗?

提前感谢您的帮助。

罗布

最佳答案

除非你真的需要(并且知道你在做什么),否则不要使用struct。尽可能使用 classes。您的生活会更轻松,大部分时间都会“自动”工作。

关于c# - 在 C# 中通过引用传递对象的标准方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21780762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com