合约编译不过是为什么

☆KeyLove! 6月前 182

如题,报出如下错误 

环境  VS2017  4.71

// main

public static object Main(int op,string addr,string nickname="")

        {

            switch (op)

            {

                case 0:

                    return GetName(addr);

                case 1:

                    return SetName(addr, nickname);

                case 2:

                    return DelName(addr);

                default:

                    return false;

            }

        }

-----------------------------------------

 static string GetName(string addr)

        {

            if (!IsValidAddr(addr))

                return "";

            if(IsAddrHasName(addr))

            {

                byte[] nickname = Storage.Get(Storage.CurrentContext, addr);

                return Encoding.UTF8.GetString(nickname);

            }

            return "";

        }

-----------------------------------------------

 static bool SetName(string addr,string nickname)

        {

            if (!IsValidAddr(addr))

                return false;

            if (nickname == null || nickname.Equals("") || nickname.Length < 2)

                return false;

            Storage.Put(Storage.CurrentContext, addr, nickname);

            return true;

        }

------------------------------------------------

static bool DelName (string addr)

        {

            if (!IsValidAddr(addr))

                return false;

            byte[] b = Storage.Get(Storage.CurrentContext, addr);

            if (b.Length <= 0)

                return false;

            Storage.Delete(Storage.CurrentContext, addr);

            return true;

        }

-------------------------------------------------

static bool IsAddrHasName(string addr)

        {

            if (!IsValidAddr(addr))

                return false;

            byte[] b = Storage.Get(Storage.CurrentContext, addr);

            return b.Length > 0;

        }

-------------------------------------------------

static bool IsValidAddr(string addr)

        {

            // 这里未做处理

            return addr.Length == 34;

        }


最新回复 (1)
全部楼主
  • ☆KeyLove! 6月前
    0 2
    测试时发现switch语句中写2个case时,可以编译通过.但3个case就会报错.
    后来换成if else了.
    话说,这不应该是正常的语言行为
返回