在另一个范围内给出不同的含义

Tec*_*Guy 1 c# c#-4.0

这里我有一部分代码.在这里我得到了错误.

错误>>名称为'msg'的局部变量不能在此范围内声明,因为它会给'msg'赋予不同的含义,'msg'已在'父或当前'范围内用于表示其他内容

但是我使用了SMSHelper类中的所有东西.那么另一个范围是什么

public class SMSHelper
{
    private string msg;
    private string convertToISOfromUtf8(String msg, String to, String from)
    {

        String iso_msg = null;
        if (from.Equals("UTF-8"))
        {
            System.Text.Encoding iso = Encoding.GetEncoding("ISO-8859-1");
            System.Text.Encoding utf8 = Encoding.UTF8;

            byte[] utfBytes = utf8.GetBytes(msg);
            byte[] isoBytes = Encoding.Convert(utf8, iso, utfBytes);
            String msg = iso.GetString(isoBytes);
        }
Run Code Online (Sandbox Code Playgroud)

Den*_*aub 5

标有<-- this下面的三行代表一个单独变量的声明,每个变量具有相同的名称msg.因此他们互相冲突.

private string msg; // <-- this
private string convertToISOfromUtf8(String msg // <-- this
{
    // ...
    if (from.Equals("UTF-8"))
    {
        // ...
        String msg // <-- and this
    }
}
Run Code Online (Sandbox Code Playgroud)

以下将有效:

private string _msg;
private string convertToISOfromUtf8(String msg, // ...
{
    // ...
    if (from.Equals("UTF-8"))
    {
        // ...
        _msg = iso.GetString(isoBytes);
    }
}
Run Code Online (Sandbox Code Playgroud)