develop
bicijinlian 5 years ago
parent 0f59bcb97c
commit 942d4f490a

3
.gitignore vendored

@ -18,6 +18,9 @@ $RECYCLE.BIN/
# Windows shortcuts # Windows shortcuts
*.lnk *.lnk
# ---> Visual Studio Code
.vscode/solution-explorer/
# ---> VisualStudio # ---> VisualStudio
## Ignore Visual Studio temporary files, build results, and ## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons. ## files generated by popular Visual Studio add-ons.

@ -23,13 +23,7 @@ namespace Study.DelegateSeries.Core
* 10 * 10
*/ */
#region 定义委托 #region 定义委托,DeclareDelegate类
//基本语法
public delegate decimal OperationDelegate(decimal a,decimal b);
public delegate string ShowTypeNameDelegate();
public delegate string ShowNameDelegate();
#endregion #endregion
#region 实例化委托 #region 实例化委托
@ -38,9 +32,9 @@ namespace Study.DelegateSeries.Core
/// 基础语法 /// 基础语法
/// (c#1.0 开始提供) /// (c#1.0 开始提供)
/// </summary> /// </summary>
public OperationDelegate BaseInstance() public CalculatorDelegate BaseInstance()
{ {
OperationDelegate operation = new OperationDelegate(new Addition().Add); CalculatorDelegate operation = new CalculatorDelegate(new Addition().Add);
return operation; return operation;
} }
@ -48,9 +42,9 @@ namespace Study.DelegateSeries.Core
/// c#2.0 简写方法 /// c#2.0 简写方法
/// (基于类型推断) /// (基于类型推断)
/// </summary> /// </summary>
public OperationDelegate AutoTypeInstance() public CalculatorDelegate AutoTypeInstance()
{ {
OperationDelegate operation = new Subtraction().Difference; CalculatorDelegate operation = new Subtraction().Difference;
return operation; return operation;
} }
@ -58,10 +52,10 @@ namespace Study.DelegateSeries.Core
/// c#2.0 匿名委托 /// c#2.0 匿名委托
/// (使用匿名方法实例化的委托) /// (使用匿名方法实例化的委托)
/// </summary> /// </summary>
public OperationDelegate AnonymousInstance() public CalculatorDelegate AnonymousInstance()
{ {
//c# 2.0基础语法 //c# 2.0基础语法
OperationDelegate operation = delegate (decimal a,decimal b) { return (a * b) * (a * b); }; CalculatorDelegate operation = delegate (decimal a,decimal b) { return (a * b) * (a * b); };
return operation; return operation;
} }
@ -69,14 +63,14 @@ namespace Study.DelegateSeries.Core
/// c#3.0 Lambda表达式 /// c#3.0 Lambda表达式
/// (实质:"Lambda表达式"是一个匿名函数) /// (实质:"Lambda表达式"是一个匿名函数)
/// </summary> /// </summary>
public OperationDelegate LambdaInstance() public CalculatorDelegate LambdaInstance()
{ {
OperationDelegate operation = (decimal a,decimal b)=> { return a * a + b * b + 2 * a * b; }; CalculatorDelegate operation = (decimal a,decimal b)=> { return a * a + b * b + 2 * a * b; };
//自动推断 //自动推断
OperationDelegate operation2 = (a,b) => { return a * a + b * b + 2 * a * b; }; CalculatorDelegate operation2 = (a,b) => { return a * a + b * b + 2 * a * b; };
//{}只有一句时的简写 //{}只有一句时的简写
OperationDelegate operation3 = (a, b) => a * a + b * b + 2 * a * b ; CalculatorDelegate operation3 = (a, b) => a * a + b * b + 2 * a * b ;
return operation; return operation;
} }

@ -0,0 +1,77 @@
using System;
using System.Collections.Generic;
using System.Text;
using Xunit;
using Study.DelegateSeries.Core;
using Study.DelegateSeries.Core.Calculator;
namespace Study.DelegateSeries.Test
{
public class StudyDelegateTest : IDisposable, IClassFixture<StudyDelegate>
{
#region 准备
private StudyDelegate studyDelegate;
public StudyDelegateTest(StudyDelegate _studyDelegate)
{
this.studyDelegate = _studyDelegate;
}
#endregion
#region xUnit框架可能性测试
[Fact]
public void FixtureTest()
{
Assert.NotNull(studyDelegate);
}
#endregion
#region 实例化委托测试
[Fact]
public void BaseInstanceTest()
{
var baseInstance = this.studyDelegate.BaseInstance();
Assert.NotNull(baseInstance);
Assert.True(baseInstance.Method.IsPublic);
}
[Fact]
public void AutoTypeInstanceTest()
{
var baseInstance = this.studyDelegate.AutoTypeInstance();
Assert.NotNull(baseInstance);
Assert.Equal("Difference", baseInstance.Method.Name);
}
[Fact]
public void AnonymousInstanceTest()
{
var baseInstance = this.studyDelegate.AnonymousInstance();
Assert.NotNull(baseInstance);
Assert.False(baseInstance.Method.IsSpecialName);
}
[Fact]
public void LambdaInstanceTest()
{
var baseInstance = this.studyDelegate.LambdaInstance();
Assert.NotNull(baseInstance);
Assert.False(baseInstance.Method.IsSpecialName);
}
#endregion
#region 清理
void IDisposable.Dispose()
{
}
#endregion
}
}

@ -9,12 +9,6 @@ namespace Study.DelegateSeries.Test
[Fact] [Fact]
public void UseXunit() public void UseXunit()
{ {
List<string> array = new List<string>();
for (int i = 0; i < 10; i++)
{
array.Add(i.ToString());
}
Assert.True(true, "框架通过"); Assert.True(true, "框架通过");
} }
} }

Loading…
Cancel
Save