我如何阻止变量重置
How do i stop the variable from resetting
在我的代码中,我有一个带有两个参数的方法。
一个参数接受一个 int 值,另一个参数接受一个数组。
例如
public void NextSong(int i, TagLib.File[] queue)
{
i++;
SONG_URL = queue[i].Name;
Stop();
Play();
}
我的问题是每次都这样调用这个变量:
NextSong(0, SongQueue);
它恢复到参数字段中的金额。我该如何阻止它?
正如预期的那样工作,只要 0 将继续传递,变量将始终重置。
您可以做什么来更改 NextSong
方法的签名以返回 i
的值:
public int NextSong(int i, TagLib.File[] queue)
{
i++;
SONG_URL = queue[i].Name;
Stop();
Play();
return i;
}
然后在您的代码中将一些全局值初始化为 0
并按如下方式调用该方法:globalVariable = NextSong(globalVariable, SongQueue)
.
两种方式:
public int NextSong(int i, TagLib.File[] queue)
{
i++;
SONG_URL = queue[i].Name;
Stop();
Play();
return i;
}
int i = 0;
i= NextSong(i, SongQueue);
这里我们将 i
变量传递给方法,在方法期间我们递增该变量,然后通过 return 将其传回。我们现在引用了那个变量。
或
public void NextSong(TagLib.File[] queue, out int i)
{
i++;
SONG_URL = queue[i].Name;
Stop();
Play();
}
int i = 0;
NextSong(SongQueue, out i);
这使用了 out 功能,它强制某人传递一个将被 returned 的变量。它通过引用传递变量(您也可以使用 ref,但由于 int
不能为 null,因此在这种情况下它不会有太大变化)。
在我的代码中,我有一个带有两个参数的方法。 一个参数接受一个 int 值,另一个参数接受一个数组。
例如
public void NextSong(int i, TagLib.File[] queue)
{
i++;
SONG_URL = queue[i].Name;
Stop();
Play();
}
我的问题是每次都这样调用这个变量:
NextSong(0, SongQueue);
它恢复到参数字段中的金额。我该如何阻止它?
正如预期的那样工作,只要 0 将继续传递,变量将始终重置。
您可以做什么来更改 NextSong
方法的签名以返回 i
的值:
public int NextSong(int i, TagLib.File[] queue)
{
i++;
SONG_URL = queue[i].Name;
Stop();
Play();
return i;
}
然后在您的代码中将一些全局值初始化为 0
并按如下方式调用该方法:globalVariable = NextSong(globalVariable, SongQueue)
.
两种方式:
public int NextSong(int i, TagLib.File[] queue)
{
i++;
SONG_URL = queue[i].Name;
Stop();
Play();
return i;
}
int i = 0;
i= NextSong(i, SongQueue);
这里我们将 i
变量传递给方法,在方法期间我们递增该变量,然后通过 return 将其传回。我们现在引用了那个变量。
或
public void NextSong(TagLib.File[] queue, out int i)
{
i++;
SONG_URL = queue[i].Name;
Stop();
Play();
}
int i = 0;
NextSong(SongQueue, out i);
这使用了 out 功能,它强制某人传递一个将被 returned 的变量。它通过引用传递变量(您也可以使用 ref,但由于 int
不能为 null,因此在这种情况下它不会有太大变化)。