手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >C#可以减少或不使用switch有什么方法
C#可以减少或不使用switch有什么方法
摘要:Insus.NET的解决方法,是使用工厂方法来处理,可以创建一个工厂接口,然后每个方法设计为一个工厂类,并实现工厂接口。工厂接口:复制代码代...

Insus.NET的解决方法,是使用工厂方法来处理,可以创建一个工厂接口,然后每个方法设计为一个工厂类,并实现工厂接口。

工厂接口:

复制代码 代码如下:

IGetFactory

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

/// <summary>

/// Summary description for IGetFactory

/// </summary>

namespace Insus.NET

{

public interface IGetFactory

{

string GetResult();

}

}

Get工厂类:

复制代码 代码如下:

GetFactory

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

/// <summary>

/// Summary description for GetFactory

/// </summary>

namespace Insus.NET

{

public class GetFactory : IGetFactory

{

public GetFactory()

{

//

// TODO: Add constructor logic here

//

}

public string GetResult()

{

return "get";

}

}

}

GetTest类:

复制代码 代码如下:

GetTestFactory

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

/// <summary>

/// Summary description for GetTestFactory

/// </summary>

namespace Insus.NET

{

public class GetTestFactory : IGetFactory

{

public GetTestFactory()

{

//

// TODO: Add constructor logic here

//

}

public string GetResult()

{

return "gettest";

}

}

}

以及GetSet类:

复制代码 代码如下:

GetSetFactory

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

/// <summary>

/// Summary description for GetSetFactory

/// </summary>

namespace Insus.NET

{

public class GetSetFactory : IGetFactory

{

public GetSetFactory()

{

//

// TODO: Add constructor logic here

//

}

public string GetResult()

{

return "getset";

}

}

}

因此你的代码最终变为:

复制代码 代码如下:

View Code

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using Insus.NET;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

public string Exec(string mothedName)

{

string ret = "";

//switch (mothedName)

//{

// case "get":

// ret = get();

// break;

// case "get1":

// ret = gettest();

// break;

// //.....

// case "testget":

// ret = getrset();

// break;

//}

IGetFactory get = new GetTestFactory(); //这里是实现工厂类

ret = get.GetResult();

return ret;

}

//public string get()

//{

// return "get";

//}

//public string gettest()

//{

// return "gettest";

//}

//public string getrset()

//{

// return "getset";

//}

}

15:50修改补充如下:

上面的最终代码,无传入参数mothedName,怎样办,我们可以虑一下反射,如果改为反射击,那传入的参数需要规范一下方可以:

"get" >>"Get";

"get1" >>"GetTest"

"testget" >> "GetSet"

这样一改之后,就可以使用反射语法了,可以把

复制代码 代码如下:

IGetFactory get = new GetTestFactory(); //这里是实现工厂类

改为(下面是asp.net的应用):

复制代码 代码如下:

IGetFactory get = (IGetFactory)Assembly.Load("App_Code").CreateInstance("Insus.NET." + mothedName + "Factory");

如果在非asp.net下,可以把"App_Code"改为"程序集名称":

复制代码 代码如下:

IGetFactory get = (IGetFactory)Assembly.Load("程序集名称").CreateInstance("Insus.NET." + mothedName + "Factory");

【C#可以减少或不使用switch有什么方法】相关文章:

C# 小数位数保留的方法集锦

如何在WebForm中使用javascript防止连打(双击)

.NET程序调试技巧(一):快速定位异常的一些方法

析构函数的作用 什么是析构函数

读取TXT文件内容的方法

asp.net后台如何输出js脚本使用什么方法可以实现

批量删除记录时如何实现全选方法总结

asp.net导出excel的简单方法

asp.net(C#)中上传大文件的几中常见应用方法

ASP.NET技巧:数据岛出到Excel最为简易的方法

精品推荐
分类导航