c#为什么这一行需要演员?

时间:2011-03-06 13:54:04

标签: c# casting

// A single blog entry
public class BlogEntry
{
    public string ID;
    public string Title;
    public string Entry;
    public DateTime Date;
    public int UserID;

    // Load an entry based on ID
    public BlogEntry(int EntryID)
    {
        DataClassesDataContext db = new DataClassesDataContext();
        var q = (from Blog in db.tblBlogEntries where Blog.ID == EntryID select Blog).Single();

        // Fill data
        this.ID = EntryID;
        this.Title = q.title;
        this.Entry = q.entry;
        this.Date = (DateTime)q.date;
        this.UserID = (int)q.userID;
    }
}

this.ID = EntryID抛出错误:

  

不能隐瞒将'string'类型转换为   'INT'

我很困惑,因为它们都被明确地定义为整数!

8 个答案:

答案 0 :(得分:4)

暂时失明?

public string ID;

答案 1 :(得分:4)

在类定义中,ID定义为String

 public string ID;

并且您正试图协助int。 这就是原因。

答案 2 :(得分:4)

你已经在课堂级别将'ID'定义为字符串。

答案 3 :(得分:2)

你的班级说string ID 你不能将int加入其中。

答案 4 :(得分:2)

this.ID定义为字符串,EntryID是integer参数。该代码无效。

答案 5 :(得分:1)

嗯..不,他们不是ID是字符串而UserId是一个int

public string ID;
public int UserID;

答案 6 :(得分:1)

一个很好的例子,说明为什么你不应该使用类似和模糊的字段名称。

public string ID;
public int UserID;

答案 7 :(得分:1)

我认为你打算这样做:

// Fill data         
this.UserID = EntryID;

就你的字段的名称来说,这是一个尴尬的语义情况,所以仔细检查你的逻辑,并确保你正确的属性分配给正确的属性。