我们在msdn中读到我们使用DynamicObject Class"添加新的动态属性"我编写了一个以下程序
public class DemoDynamicObject : DynamicObject
{
}
class Program
{
public static void Main()
{
dynamic dd = new DemoDynamicObject();
dd.FirstName = "abc";
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行这个程序时,它会给出运行时错误:'DemoDynamicObject'不包含'FirstName'的定义,如果我们通过使用DynamicObject Class添加动态属性那么为什么它可以给出这个错误任何人都可以告诉我原因和解决方案?
我有一个课程如下.
public class MyClass
{
public MyMethod()
{
int x = CalculateSomething();
}
private int CalculateSomething()
{
// Do something and return an int
return 100;
}
}
Run Code Online (Sandbox Code Playgroud)
为了进行单元测试,我添加[assembly: InternalsVisibleTo("MyTests")]了私有方法并将其更改为内部虚拟方法.在单元测试项目中,我创建了一个类MockMyClass并创建了如下的私有方法.
public class MockMyClass : MyClass
{
public bool MadeHappyNoise {get; set;}
internal override int CalculateSomething()
{
MadeHappyNoise = true;
return base.CalculateSomething();
}
}
Run Code Online (Sandbox Code Playgroud)
单元测试现在如下
[TestMethod()]
public void WasCalculateSomethingCalledOK()
{
MockMyClass mk = new MockMyClass();
mk.MyMethod();
Assert.IsTrue(mk.MadeHappyNoise, "Oops...CalculateSomething not called...");
}
Run Code Online (Sandbox Code Playgroud)
几个问题:这是删除依赖关系的好方法吗?我个人不喜欢将方法从私有更改为内部但没有选项(除了使用Reflection之外).此外,驻留在生产代码中的属性InternalsVisibleTo("MyTests")也不好.有人能指出我更好的解决方案吗?谢谢.
伙计们两者之间有什么区别?
如果我设置<table runat=server>我也可以在服务器端使用它.
两者之间有什么不同吗?
感谢名单
今天我听说可以使用这种语法在js中创建一个多维数组:
var a = new Array(3,3);
a[2][2] = 2;
alert(a[2][2])
Run Code Online (Sandbox Code Playgroud)
然而,这在歌剧中不起作用.我错了吗?
我正在尝试使用 valgrind 运行我的 C++ 程序,但是我在程序中有一些需要用户从 stdin 输入的点,但是当我使用 valgrind 运行时,它不会让用户为程序输入任何内容,有没有办法解决这个问题?
四处寻找,但没有找到答案。
我想创建一个以下类型的字典,
var data = new Dictionary<string, Dictionary<string, Dictionary<string, int>>>();
Run Code Online (Sandbox Code Playgroud)
当我尝试以下列方式向字典添加值时,我得到一个KeyNotFound异常.
data[key1][key2][key3]= 3;
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?我假设如果在字典中找不到密钥,它会自动添加到字典中.
否则有没有办法在运行时添加键?
我期待以下类型的输出:
[male,[animal,[legs,4]
[eyes,2]]
[human,[hands,2]
[ears,2]]
[female,[animal,[nose,1]
[eyes,2]]
[bird,[wings,2]
[legs,2]]
Run Code Online (Sandbox Code Playgroud) 我想在WebSphere Liberty Profile中使用timer-Service(尤其是@Schedule Annotation).那可能吗?
有功能吗?https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/8.5.5.0/什么都没有;-(
我想知道从C#代码组织数据库的最佳方法是什么.
我曾经有过不同的方法:
现在我认为为每个需要存储的datadomain类存放一些非静态类会很好,这将会进行存储.
最好的方法是什么?有没有好的库提供良好的API来存储对象?
我写了一个函数,包括给我一个介于两者之间的小时列表DateTime.
但最终它看起来并不是很容易阅读,它让我想要对它进行单元测试,即使我正在研究的项目根本不进行单元测试.
所以我的问题是,是否有更清晰,更有效的方式来写这个?:
码:
private List<DateTime> GetHoursForEvent(DateTime start, DateTime end)
{
var hours = new List<DateTime>();
DateTime startFloor = Convert.ToDateTime(start.ToString("MM/dd/yyyy HH:00:00"));
DateTime endFloor = Convert.ToDateTime(end.ToString("MM/dd/yyyy HH:00:00"));
for (double dblDate = startFloor.ToOADate();
dblDate <= endFloor.ToOADate();
dblDate += (1.0 / 24.0))
{
hours.Add(DateTime.FromOADate(dblDate));
}
return hours;
}
Run Code Online (Sandbox Code Playgroud)
输入:
DateTime start = Convert.ToDateTime("2012-04-01 04:22:00");
DateTime end = Convert.ToDateTime("2012-04-02 00:05:00");
Run Code Online (Sandbox Code Playgroud)
结果:
2012-04-01 04:00:00
2012-04-01 05:00:00
2012-04-01 06:00:00
2012-04-01 07:00:00
2012-04-01 08:00:00
2012-04-01 09:00:00
2012-04-01 10:00:00
2012-04-01 11:00:00
2012-04-01 12:00:00
2012-04-01 13:00:00
2012-04-01 …Run Code Online (Sandbox Code Playgroud) c# ×4
architecture ×1
asp.net ×1
c#-4.0 ×1
c++ ×1
database ×1
dictionary ×1
javascript ×1
pcre ×1
perl ×1
regex ×1
schedule ×1
scheduler ×1
timer ×1
unicode ×1
unit-testing ×1
user-input ×1
valgrind ×1