|
|
1
18
可以使用lambda表达式调用函数:
你可以这样称呼它:
编辑 :如果您 真正地 想要类型推断:
|
|
|
2
5
不,无法通过引用直接传递属性。VisualBasic在语言中提供了这种支持,方法是将属性的值放入一个临时变量中,然后通过引用传递,并在返回时重新分配。
在C中,只能通过传递
|
|
|
3
5
可以使用相应的方法和委托包装该属性并传递委托。
|
|
|
4
5
正如其他人所指出的,您可以使用委托来实现这一点,使用许多指定委托的方法之一。但是,如果您打算定期这样做,那么应该考虑创建一个包装类型,以便通过引用传递包装所需委托的属性,它可能会创建更好的API。 例如:
这样,您就可以传递对属性的引用,并通过设置引用值来修改它。
|
|
|
5
2
使用lambda传递函数可能是最优雅的,但是如果您只想简单地解决您的问题
|
|
|
6
2
为什么不使用泛型并返回对象?
不太清楚为什么你会这样做,但鉴于你是,你可以这样做。
|
|
|
7
1
你为什么这么复杂?您在编译时就知道属性的类型,只需使用一行代码就可以了:
如果需要检查类型,只需添加一个包装int.typarse()的小函数,如果在querystring值中得到“pdq”,而不是数字,则返回无害的结果(例如0)。 |
|
|
8
1
以下是一个完全不同的解决方案: 创建从System.Web.UI.Page派生的类,这些类的属性为queryString参数。另外,使用实用程序函数(参见下面的converttype),您不需要做太多的工作来从querystring中获取数据。最后,在这些派生类中,定义一个静态内部类,该类包含作为querystring参数名称的常量,这样您就不需要在任何地方引用任何魔力值。 我通常为我的项目定义一个基本页类,这使得它成为一个方便的地方来执行所有页面上发生的常见事情,以及一些实用程序函数:
然后,在常规页面的代码隐藏部分,现在看起来是这样的:
它使代码隐藏在类后面 非常 清理(如您所见),并且很容易维护,因为所有繁重的提升都是由两个在每个页面类中重用的函数(getquerystringvalue和changetype)完成的,并且所有内容都是类型安全的(您将在getquerystringvalue中注意到,您可以指定函数是否hr如果值无法转换或仅使用返回默认值,则显示rows;这两个值都适用于不同的时间,具体取决于您的应用程序)。 此外,您甚至可以很容易地编写一个vs插件或codesmith脚本来生成派生的page类。我发现新开发人员很难理解他们传递的代表和内容。 |