我有一个实现IMarcas接口的类:
public class BaseQuestao : IMarcas
{
public string TxtMarca
{
get;
set;
}
}
其中TxtMarca属性是来自该界面的assignture。
问题是,当我尝试执行跟随代码时,说BasesQuestao不是IMarcas:
BaseQuestao bs = new BaseQuestao();
IMarcas brand = bs as IMarcas;
if (brand != null)
{
bs.TxtMarca = "voila";
}
任何想法?
答案 0 :(得分:0)
将bs
投射到IMarcas
brand
之后,检查bs
是否为空,而不是brand
。您应该检查brand
是否为null,以查看转换是否成功。
除此之外它应该工作得很好。如果仍然无效,请发布更多代码/背景信息。
答案 1 :(得分:0)
尝试
if (brand != null)
答案 2 :(得分:0)
正如其他人所说,你使用了错误的变量(bs
而不是brand
) - 但它会以任何方式运作。
以下是更正代码的示例:
using System;
public interface IMarcas
{
string TxtMarca { get; set; }
}
public class BaseQuestao : IMarcas
{
public string TxtMarca
{
get;
set;
}
}
class Test
{
static void Main()
{
BaseQuestao bs = new BaseQuestao();
IMarcas brand = bs as IMarcas;
if (brand != null)
{
brand.TxtMarca = "voila";
Console.WriteLine("Done");
}
}
}
甚至使用原始代码:
if (bs != null)
{
bs.TxtMarca = "voila";
Console.WriteLine("Done");
}
......它仍然很好。
答案 3 :(得分:0)
检查您的代码,因为上面的代码很好