我知道事件总是与代表联系在一起.但是,我错过了一些事件的核心用法,并试图理解这一点.
我创建了一个简单的事件程序,如下所示,它工作得很好.
namespace CompleteRef3._0
{
delegate void someEventDelegate();
class EventTester
{
public event someEventDelegate someEvent;
public void doEvent()
{
if (someEvent != null) someEvent();
}
}
class Program
{
static void EventHandler1()
{
Console.WriteLine("Event handler 1 called..");
}
static void EventHandler2()
{
Console.WriteLine("Event handler 2 called..");
}
static void EventHandler3()
{
Console.WriteLine("Event handler 3 called..");
}
static void Main(string[] args)
{
EventTester evt = new EventTester();
evt.someEvent += EventHandler1;
evt.someEvent += EventHandler2;
evt.someEvent += EventHandler3;
evt.doEvent();
Console.ReadKey();
}
}
} …Run Code Online (Sandbox Code Playgroud) 我正在使用visual studio单元测试框架进行单元测试
在我的单元测试方法中,我想声明结果是否像Guid一样
3C99A192-9844-4174-AC32-91976A5F2CBF.
目前,我已经想出了这个.但我相信会有更好的方法来解决这个问题.
[TestMethod]
public void CreateAppointment_Should_Return_Guid()
{
string result = CreateAppointment();
Guid guidResult;
if (Guid.TryParse(result.GuestId, guidResult))
{
Assert.IsTrue(true);
}
else
{
Assert.IsTrue(false);
}
}
Run Code Online (Sandbox Code Playgroud) class baseClass
{
derivedClass nm = new derivedClass();
}
class derivedClass : baseClass
{
}
Run Code Online (Sandbox Code Playgroud)
这段代码很好.可能是C#允许在其中创建derivedClass对象的可能原因baseClass.你能想到这样做的具体原因吗?
请参阅我下面的示例程序。我有两个包含相同名称空间struct。为了避免在中使用时发生冲突Main(),我给了命名空间别名。在调用structfrom时Main(),我可以直接通过名称空间别名(例如)进行调用test.MyStruct。我还有另一个使用::运算符的选项,例如test::MyStruct。
为什么::需要运算符,在哪里应该使用它代替别名?
using System;
using test=counter;
using duplicatecounter;
namespace counter
{
struct MyStruct
{
}
}
namespace duplicatecounter
{
struct MyStruct
{
}
}
class Program
{
public static void Main()
{
test.MyStruct a = new test.MyStruct();
test::MyStruct a1 = new test::MyStruct();
}
}
Run Code Online (Sandbox Code Playgroud) 有一个非常简单的2页网站.首先是我们可以输入用户名和密码的登录页面,第二页在认证后显示"welcome".
我们可以使用任何设计模式吗?
我无法想到这样一个简单网站的设计模式,只是想得到你的想法.
我的一位同事向我提出了这个问题!
我的客户提出了一个奇怪的要求,即对于项目代码中的每个.ToString()调用,我们都应该进行自定义操作(比如在db中添加一行)
我觉得扩展方法对我来说非常有用,如果它能为我提供最重要的设施.
Microsoft为什么不允许扩展方法覆盖类方法的现有行为?
我听说编译器将扩展方法的优先级设置为低于类方法.有没有办法将编译器修改为优先级扩展方法而不是类方法?
我有以下字符串列表
List A = {"1","2","3"}
List B = {
"1,2,3,4,5,6,7",
"1,2,6,7",
"1",
"4,5,6",
"6,7"
}
Run Code Online (Sandbox Code Playgroud)
我希望列表B中的所有项目与列表A完全匹配或部分匹配
那是我想输出的
Result = {
"1,2,3,4,5,6,7",
"1,2,6,7",
"1"
}
Run Code Online (Sandbox Code Playgroud)
如何用Linq做到这一点?
.net ×6
c# ×6
asp.net ×1
assert ×1
c#-4.0 ×1
delegates ×1
events ×1
inheritance ×1
linq ×1
namespaces ×1
polymorphism ×1
unit-testing ×1