我确信我只是不了解C#中事件和/或委托的基本内容,但为什么我不能在此代码示例中进行布尔测试:
public class UseSomeEventBase {
public delegate void SomeEventHandler(object sender, EventArgs e);
public event SomeEventHandler SomeEvent;
protected void OnSomeEvent(EventArgs e) {
// CANONICAL WAY TO TEST EVENT. OF COURSE, THIS WORKS.
if (SomeEvent != null) SomeEvent(this, e);
}
}
public class UseSomeEvent : UseSomeEventBase {
public bool IsSomeEventHandlerNull() {
// "LEFT HAND SIDE" COMPILER ERROR
return SomeEvent == null;
}
}
class Program {
static void Main(string[] args) {
var useSomeEvent = new UseSomeEvent();
useSomeEvent.SomeEvent +=new UseSomeEventBase.SomeEventHandler(FuncToHandle);
// "LEFT HAND …Run Code Online (Sandbox Code Playgroud) 我有三个课程如下:
public class TestEntity { }
public class BaseClass<TEntity> { }
public class DerivedClass : BaseClass<TestEntity> { }
Run Code Online (Sandbox Code Playgroud)
我已经在运行时获得了使用反射的System.Type对象DerivedClass.如何获得使用反射的System.Type对象TestEntity?
谢谢.
我通过google搜索找到的大多数ASP.NET MVC分页解决方案看起来都是以IEnumerable集合的形式从数据库表中获取所有行,对IEnumerable集合执行一些分页转换,然后将结果返回给视图.我希望能够在数据库端进行分页,但仍然有一些分页类来进行页码计算和HTML生成.那里有解决办法吗?或者是我一直在寻找的那些,但我没有看到它,因为我看错了他们?
这是我一直在看的东西:
我的视图模型中有一些内部自动属性,但我的强类型视图看不到它们.一切都在同一个集会中,为什么会发生这种情况呢?
public class MyViewModel {
public int PublicProperty { get; set; }
internal int InternalProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
.
@*My view*@
@model MyViewModel
@Model.PublicProperty
@Model.InternalProperty @*Causes compilation error*@
Run Code Online (Sandbox Code Playgroud) asp.net-mvc access-modifiers viewmodel strongly-typed-view asp.net-mvc-3
我正在处理一个遗留数据库,它在一些表中将日期和时间字段作为char(8)列(分别格式化为yyyyMMdd和HH:mm:ss).如何将2个char列映射到单个.NET DateTime属性?我尝试了以下内容,但我得到了"无法访问setter"错误,因为DateTime Date和TimeOfDay属性是只读的:
public class SweetPocoMannaFromHeaven
{
public virtual DateTime? FileCreationDateTime { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
.
mapping.Component<DateTime?>(x => x.FileCreationDateTime,
dt =>
{
dt.Map(x => x.Value.Date,
"file_creation_date");
dt.Map(x => x.Value.TimeOfDay,
"file_creation_time");
});
Run Code Online (Sandbox Code Playgroud)
我也尝试过为DateTime定义一个IUserType,但我无法理解.我已经做了大量的谷歌搜索,但我还是无法弄明白.处理这个愚蠢的遗留数据库约定的最佳选择是什么?一个代码示例会有所帮助,因为对于一些这些更加模糊的场景的文档并不多.
legacy nhibernate nhibernate-mapping fluent-nhibernate iusertype
更新:所以这里的每个人都告诉我,我只需要重新开始我如何设计课程(顺便说一句,谢谢大家的优秀答案!).接下来,我开始对战略模式进行广泛阅读.我想创建从抽象基类继承的行为类(或策略类).然后,Candidate类将具有不同抽象基类/类的属性作为Type行为或策略.也许是这样的:
public abstract class SalaryStrategy {
public abstract decimal Salary { get; set; }
public abstract decimal Min { get; set; }
public abstract decimal Mid { get; set; }
public decimal CompaRatio {
get {
if (this.Mid == 0) { return 0; }
else { return this.Salary / this.Mid; }
}
}
}
public class InternalCurrentSalaryStrategy {
public override decimal Salary { get; set; }
public override decimal Min {
get { return this.Salary * …Run Code Online (Sandbox Code Playgroud) c# inheritance code-reuse design-patterns multiple-inheritance
是否有可能在ASP.NET中执行以下操作:
<tr<%= index++ % 2 == 0 ? " class=\"alt-row\"" : ""; %>>
Run Code Online (Sandbox Code Playgroud)
换句话说,有没有办法逃脱内联代码块或其他东西的尖括号?
(我知道替代方案是:
<% if (index++ % 2 == 0) { %>
<tr class="alt-row">
<% } else { %>
<tr>
<% } %>
Run Code Online (Sandbox Code Playgroud)
.我只是好奇,如果可能的另一种方式)
asp.net-mvc ×3
c# ×3
asp.net ×1
code-reuse ×1
database ×1
delegates ×1
events ×1
generics ×1
html ×1
inheritance ×1
inline-code ×1
iusertype ×1
legacy ×1
linq-to-sql ×1
nhibernate ×1
pagination ×1
paging ×1
reflection ×1
syntax ×1
viewmodel ×1