への参照 'ref'のようなvarの参照を使用する方法がありますが、メソッドでは使用できないのだろうかと思います。 exemple:var c#
using System;
using System.Collections;
using System.Collections.Generic;
public class Class3
{
struct myStruct
{
public bool structBool;
public int structInt;
public myStruct(bool _structBool, int _structInt)
{
structBool = _structBool;
structInt = _structInt;
}
}
myStruct currentTask;
int value1,value2;
bool mybool, isProcessing;
Queue<myStruct> myTask = new Queue<myStruct>();
void main()
{
//these two lines don't work due to the "ref" but I'm looking for something work like this
if (value1 > value2) myTask.Enqueue(new myStruct(mybool,ref value1));
if (value2 > value1) myTask.Enqueue(new myStruct(mybool,ref value2));
MyFunction();
}
void MyFunction()
{
if (myTask.Count > 0)
{
if (!isProcessing)
{
currentTask = myTask.Dequeue();
isProcessing = true;
}
else
{
currentTask.structInt++; // here I need to catch my var (value1 or value2)
}
}
}
}
私は、配列に値を入れてみましたが、私はそれは悪い方法だと思います。私は他のものをたくさん試しましたが、何も正しく動作しません。だから今、あなたがこれを行うことができます
public class Args
{
public int Value { get; set; }
}
:
質問のポイントがありません。 'myStruct()'のコンストラクタは 'ref'パラメータを取らず、' ref'パラメータ(それに代入する)を必要とする何もしません。なぜそれを 'ref'として渡したいのですか? –
技術的な問題ではなく、あなたの問題について詳しく説明できますか?多分もっと良い方法がありますか? – rsqLVo
これはあなたが望むものですか? 'int value1 = 2; var s =新しいmyStruct(mybool、ref value1); s.structInt = 3; Console.WriteLine(value1);/* outputs 3 */' - つまり、Cがintへのポインタと呼ばれるものを探していますか? –