提问人:marc77 提问时间:9/22/2023 最后编辑:Ken Whitemarc77 更新时间:9/22/2023 访问量:61
如何在方法中调用结构体,以便之后可以输出它?
How do I call a struct in a method so I can output it afterwards?
问:
我想让 x 和 y 整数输出 z,这是两个整数的乘积/和。 但是,要做到这一点,我必须以某种方式将 z 变量(在结构中找到)引入 Update() 方法,并且参数似乎不起作用,因为我必须在 struct 和 Main() 方法中引入它们。它将创建一个引入参数的无限循环。 我想尝试在 Update() 方法中创建一个实例,但我似乎无法理解它,并且在此过程中有些困惑。 作为参考,这是我的代码:
using System;
public class Program
{
public static void Main()
{
Console.WriteLine("Enter: ");
string oper1 = Console.ReadLine().PadRight(2);
string oper2 = Console.ReadLine().PadLeft(2);
string oper3 = ("[+ , -, *, /] Enter an operator and press the Enter key.");
string[] operators = {"+", "-", "*", "/" };
vector3 v = new vector3(int.Parse(oper1), int.Parse(oper2), 0);
Update(v, oper3, operators);
}
public static void Update(vector3 v, string oper3, string[] operators)
{
ConsoleKeyInfo keyInfo = Console.ReadKey();
Console.WriteLine($"Enter operator: {operators}");
string output = Console.ReadLine();
//vector3 output2 = ();
//bool containString = Z.Contains(operators);
if (keyInfo.Key == ConsoleKey.Enter)
{
Console.WriteLine("hello");
}
else
{
Console.WriteLine($"\nEnter the operator as shown and press the Enter key.");
Update(v, oper3, operators);
}
Console.WriteLine($"[myInt1: {v.myInt1}, myInt2: {v.myInt2}, Z: {v.Z}]");
}
public struct vector3
{
public int myInt1;
public int myInt2;
public int Z;
public vector3(int x, int y, int z)
{
myInt1 = x;
myInt2 = y;
Z = z;
string output = Z.ToString();
}
}
}
我本来希望在 Update() 中创建一个实例,但它不想工作,我不知道为什么。
答:
0赞
Emir Alper Yildiz
9/22/2023
#1
你到底想达到什么目的?
我想让 x 和 y 整数输出 z,这是两个整数的乘积/和。
如果 z 是您使用运算符输入和 myInt1 执行的计算结果,则 myInt2;那为什么没有计算呢?您只需将值分配给 myInt1、myInt2、z。
但是,要做到这一点,我必须以某种方式将 z 变量(在结构中找到)引入 Update() 方法,并且参数似乎不起作用,因为我必须在 struct 和 Main() 方法中引入它们。
另一点是,由于 z 位于向量结构内部,如果您将向量作为参数提供给 Update() 方法,那么 Update 方法也可以访问向量内部的变量。你应该记住斯图尔特·史密斯的评论。
我本来希望在 Update() 中创建一个实例,但它不想工作,我不知道为什么。
如果您已经为此问题提供了矢量参数,则不应创建矢量实例。但这并不意味着你不能。你可能会错过一些规则。也许你可以为此提出错误。
您可以再次检查参数是如何工作的。祝你好运。
评论