【问题标题】:How to call upon a function that references objects in C#?如何调用引用 C# 中对象的函数?
【发布时间】:2016-02-18 03:44:25
【问题描述】:

这可能是一个非常愚蠢的问题,但我在任何地方都找不到答案

基本上我有一个功能:

public int cardCheck(ref PictureBox userCard1, ref PictureBox userCard2, ref PictureBox userCard3, ref PictureBox dealerCard1, ref PictureBox dealerCard2, ref PictureBox dealerCard3, int card, int cardNumber)

我需要调用该函数。如果我这样调用该函数:

uCard1 = cardCheck(card, cardNumber);

它告诉我我需要参考那些图片框。但是,当我像这样添加它们时:

uCard1 = cardCheck(PictureBox userCard1, PictureBox userCard2, PictureBox userCard3, PictureBox dealerCard1, PictureBox dealerCard2, PictureBox dealerCard3, card, cardNumber);

它告诉我 PictureBox 是一种类型,不能在该上下文中使用。

我确定我犯了一个非常愚蠢的语法错误,但我不确定在哪里。 如何正确调用引用程序中对象的函数?

【问题讨论】:

  • uCard1 = cardCheck(ref userCard1, ref userCard2, ref userCard3, ref dealerCard1, ref dealerCard2, ref dealerCard3, card, cardNumber); - 虽然我怀疑你在函数签名中不需要ref
  • @Igor 似乎对我也不起作用:/还有其他建议吗?
  • 您需要在表单中添加图片框(其中似乎有 6 个)并将这些图片框的名称作为参数传递给函数,其中变量前面有 ref 关键字名字。
  • @AlkalineDreams - 我不知道“这似乎不起作用”是什么意思。

标签: c# function syntax picturebox


【解决方案1】:

仅根据您的第二行代码,您缺少的是这样的:

uCard1 = cardCheck(ref card, ref cardNumber);

在 C# 中,当参数在声明中标记为 ref 时,您还必须在调用处添加 refout 也是如此。

但具体来说,根据您向我们展示的cardCheck 的声明,您可能需要所有参数:

int uCard1 = cardCheck(ref userCard1, ref userCard2, ref userCard3, ref dealerCard1, ref dealerCard2, ref dealerCard3, card, cardNumber);

ref 表示您正在传递一个对象,如果您调用的函数修改了它,那么您将取回修改后的版本。

你也必须定义你自己的

PictureBox userCard1 = new PictureBox(blah blah);
PictureBox userCard2 = new PictureBox(blah blah);
PictureBox userCard3 = new PictureBox(blah blah);
PictureBox dealerCard1 = new PictureBox(blah blah);
PictureBox dealerCard2 = new PictureBox(blah blah);
PictureBox dealerCard3 = new PictureBox(blah blah);
int card = 0;
int cardNumber = 0;

类似的...

当然,您可以随意调用局部变量。您调用的函数cardCheck 决定了所有这些变量以及所有这些值会发生什么。你必须让所有这些都有意义——我们不知道你引用给我们的代码的语义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 2012-05-16
    • 1970-01-01
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多