在compimation中遇到一个奇怪的问题,说类没有实现接口.
让我们说av得到了一个类:
public Class MyClass
{
...
}
Run Code Online (Sandbox Code Playgroud)
和一个interace:
public Interface IMyInterface
{
MyClass PropertyOfMyClass {get;}
}
Run Code Online (Sandbox Code Playgroud)
现在是一个通用类:
public class MyGeneric<T> where T:MyClass
{
T PropertyOfMyClass
{
get{return ...;}
}
}
Run Code Online (Sandbox Code Playgroud)
直到这里,每个人都很好并且编译正确.
但是这会在编译时打破:
public class MyGeneric<T>:IMyInterace where T:MyClass
{
T PropertyOfMyClass
{
get{return ...;}
}
}
Run Code Online (Sandbox Code Playgroud)
说MyGeneric没有实现IMyInterface的方法.但显然确实如此,不是吗?
我正在将一个localreport对象用于asp.net应用程序.此报告由一组对象提供.因此,在报告的呈现中,会调用classe的一些属性.
Class ClassForReport
{
string Date
{
get{return _aDate.ToshortDateString();}
}
}
Run Code Online (Sandbox Code Playgroud)
现在渲染的代码和问题:
//first of all, I change de culture for taking in account the choice of the user
CultureInfo ci = CultureInfo.CreateSpecificCulture(isoLanguageName_);
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
//Here, my culture is now: FR-be
MyLocalReport.render(...) // in this method, the property Date above is called. And when debugging I see that the culture is EN !!!
...
//and here, my culture is still Fr-be
Run Code Online (Sandbox Code Playgroud)
因此,当调用方法render时,它会启动一个线程并获取服务器的文化,而不是进程的文化.
我看到的唯一的工作方式是将我的报告更改为包含日期,然后提供文化参数,并在我的所有报告中将所有日期格式化为给定的文化...
所以我真的希望有一种方法可以告诉报告采取asp线程的复制文化,而不是采取其他一些文化来自无处.
thx提前
我有一个抽象类:
abstract class ClassBase
{
public abstract string Test { get; }
}
Run Code Online (Sandbox Code Playgroud)
我想得到它,顺便添加一个set accesor
class ClassDerive : ClassBase
{
string _s;
public override string Test
{
get { return _s; }
set { _s = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
我不能这样做因为我可能不会覆盖set
class ClassDerive2 : ClassBase
{
string _s;
public string Test
{
override get { return _s; }
set { _s = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
语法错误
class ClassDerive3 : ClassBase
{
string _s;
public override string ClassBase.Test
{
get …
Run Code Online (Sandbox Code Playgroud)