分号奇怪的错误

时间:2015-10-13 11:52:50

标签: c# uwp

我从我的一个班级获得了这段代码,当我将鼠标悬停在" //错误旁边的分号上时#34; "}预期"但是所有括号都是关闭的,我不知道为什么会导致这种情况,我尝试重建但没有任何改变

using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SQLite.Net;
using SQLite.Net.Platform.WinRT;

    namespace HomeAutomation
    {
        public class MainCode
        {
            static string path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db.sqlite");
            static SQLiteConnection conn = new SQLiteConnection(new SQLitePlatformWinRT(), path)
            {
            conn.CreateTable<User>;//ERROR IS HERE
            }
        }

        public class User
        {
            public int Id { get; set; }
            public string Name { get; set; }
        }
    }

4 个答案:

答案 0 :(得分:4)

您正在使用object initiationalization。你不要在其中使用分号b / c分号表示命令的终止点。您不能在初始化过程中结束语句。您将使用逗号分隔您正在初始化的每个字段,然后在最后一个大括号后结束语句。

修改

看起来你不应该在再次查看代码后使用对象初始化。此语法用于初始化对象的属性。您需要将两个语句分开。即。

static SQLiteConnection conn = new SQLiteConnection(new SQLitePlatformWinRT(), path); // End initialization statement
static MainCode()
{
   conn.CreateTable<User>;//Initialize in static constructor
}

答案 1 :(得分:1)

conn.CreateTable<User>;//ERROR IS HERE应为

conn.CreateTable<User>();//solved

你忘了括号

答案 2 :(得分:0)

不确定这是否会有所帮助,但也许可以尝试:

conn.CreateTable<User>("SELECT somethingHere FROM somewhere");

答案 3 :(得分:0)

认为您在此处使用关键字static时应该使用using

看看您尝试实现的目标我建议您的代码可能需要看起来像:

using SQLiteConnection conn = new SQLiteConnection(new SQLitePlatformWinRT(), path) { conn.CreateTable<User>();//ERROR IS HERE }

我改变了什么? 我已将static更改为using,并将括号添加到conn.CreateTable<User>()的末尾

希望这有帮助!