正如标题所说,我不清楚何时会调用这样的子程序.从perldoc的require页面可以写出:
push @INC, \&my_sub;
sub my_sub {
my ($coderef, $filename) = @_; # $coderef is \&my_sub
...
}
Run Code Online (Sandbox Code Playgroud)
但这究竟在哪里?必需的包或要求的脚本(或包)?我已经尝试了一些哨兵print陈述,但两种方法都没有这么清楚,有些东西我没有得到.
我在我的电脑上运行了一个微薄的生产环境,用于我在业余时间工作的一些应用程序.在这一点上,我有基础设置,MySQL,junit,svn ...我正处于开发的中途,我现在需要生成各种报告(而不是开发/日志/事件报告).这些报告基于数据库中的数据.
现在,我的问题是:是否有现有的报告工具接受SQL并生成各种报告(通过:电子邮件,PDF等).一些工具使得编写新报告变得容易,同时还具有一些功能强大的功能.该软件是否存在或者我必须自己编写所有这些报告吗?
你可以做什么的例子.
(defmethod some-fn ((num real))
(print "an integer"))
(defmethod some-fn ((num real))
(print "a real"))
(defmethod some-fn ((num (eql 0)))
(print "zero"))
(some-fn 19323923198319)
"an integer"
(some-fn 19323923198319.3)
"a real"
(some-fn 0)
"zero"
Run Code Online (Sandbox Code Playgroud)
它也适用于一般的'字符串类型.
(defmethod some-fn ((num string))
(print "a string"))
(some-fn "asrt")
"a string"
Run Code Online (Sandbox Code Playgroud)
但是,没有特定的字符串
(defmethod some-fn ((num (eql "A")))
(print "a specifict string")))
(some-fn "A")
=> "A string"
Run Code Online (Sandbox Code Playgroud)
我想它不起作用,因为eql不能以字符串的方式工作.
(eql "a" "a") => nil
Run Code Online (Sandbox Code Playgroud)
有办法吗?
我们目前有一个实用程序类,它处理大量字符串格式,日期显示和类似功能,它是一个共享/静态类.
这是"正确的"做事方式还是我们应该在需要时实例化实用程序类?
我们的主要目标是减少内存占用,但应用程序的性能也是一个考虑因素.
PS.我们正在使用.NET 2.0
任何人都知道什么样的配置导致MSIE 8报告一个字符串,其中也包含MSIE 6(精简到最小版本)?
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
解决方法没有问题(嗅探教育没有必要,我知道邪恶),但我有兴趣获得一些背景可能导致这种情况.
我也在同事家用机器上看过这个,我们无法弄清楚是什么原因造成的.
更新:
就在今天,我还有另一个这种"怪异"配置的例子; 一些客户报告了嵌入式视频的问题,我立即注意到这个"嵌套"用户代理:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.0.3705; .NET4.0C; .NET CLR 2.0.50727
我正在使用Fit/Fitnesse.我有一个看起来像这样的列夹具.
!|Get Stepstools Medication Id From Vocab and String| |Concept As String|Vocabulary Name Abbr|Vocabulary Concept Id|Stepstools Med Id?| |AMOXICILLIN|RXNORM|723|1| |AMOXICILLIN| | |1| |AUGMENTIN|RXNORM|151392|8| |AUGMENTIN| | |8| |Amoxicillin 1000 MG / Clavulanate 62.5 MG Extended Release Tablet| | |8|
我试图通过使用| |测试来传递空字符串值,当我运行它时,从前一行获取值并使用它.
我的夹具代码如下所示:
public class GetStepstoolsMedicationIdFromVocabAndString: ColumnFixture
{
public string VocabularyNameAbbr;
public string VocabularyConceptId;
public string ConceptAsString;
public string StepStoolsMedId()
{
MedicationMapping mapping = MedicationMapper.GetStepMedIdFromVocabNameIdAndStringMed(
VocabularyNameAbbr,
VocabularyConceptId,
ConceptAsString
);
if (mapping.SuccessfullyMapped)
{
return mapping.StepstoolsMedicationId.ToString();
}
else
{
return mapping.ErrorMessage;
} …Run Code Online (Sandbox Code Playgroud) 我想知道是否有更好的方法(比我目前正在做的)只使用对象和属性字符串名来获取并保持对另一个对象中的属性的引用.特别是,使用.Net 4.0的新动态功能有更好的方法吗?
这就是我现在所拥有的.
我有一个" PropertyReference<T>"对象,它在构造函数中获取对象名称和属性名称.
一种Initialize()方法使用反射来找到对象和属性并且存储属性getter作为Action<T>和属性setter作为Func<T>.
当我想要实际调用属性时,我会做这样的事情:
int x = _propertyReference.Get();
Run Code Online (Sandbox Code Playgroud)
要么
_propertyReference.Set(2);
Run Code Online (Sandbox Code Playgroud)
这是我的PropertyReference<T>代码.请剖析并提出改进建议.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Xml;
namespace WindowsFormsApplication2
{
public class PropertyReference<T> : IPropertyReference
{
public string ComponentName { get; set; }
public string PropertyName { get; set; }
public bool IsInitialized
{
get
{
return (_action != null && _func != null);
}
}
Action<T> _action;
Func<T> _func;
public PropertyReference() …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Type对象创建泛型类的实例.
基本上,我会在运行时拥有不同类型的对象集合,因为无法确定知道它们究竟是什么类型,我想我将不得不使用Reflection.
我正在做类似的事情:
Type elType = Type.GetType(obj);
Type genType = typeof(GenericType<>).MakeGenericType(elType);
object obj = Activator.CreateInstance(genType);
Run Code Online (Sandbox Code Playgroud)
哪个好,好.^ ___ ^
问题是,我想访问我的GenericType <>实例的方法,我不能这样做,因为它被键入为对象类.我找不到将obj强制转换为特定的GenericType <>的方法,因为这首先是问题(也就是说,我不能把它放在像:)这样的东西
((GenericType<elType>)obj).MyMethod();
Run Code Online (Sandbox Code Playgroud)
应该如何处理这个问题?
非常感谢!^ ___ ^
假设我有一个索引视图.我传入的模型实际上是模型的集合,因此Html属性是类型HtmlHelper<List<MyModel>>.如果我想调用扩展方法(例如,Display()或者DisplayFor()列表中的单个项目,但是,我认为我需要获得一个HtmlHelper<MyModel>.但是如何?
我尝试使用HtmlHelper<TModel>构造函数,如下所示:
HtmlHelper<TModel>(ViewContext, IViewDataContainer)
Run Code Online (Sandbox Code Playgroud)
但我没有运气.我不知道如何获得该IViewDataContainer项目,这些东西的文档非常稀疏.
当我这样做时,显然会发生很多魔法......
return View(List<MyModel>);
Run Code Online (Sandbox Code Playgroud)
......在我的控制器里
如何在列表/集合中的单个项目上重新创建魔法?
更新
这是一个代码片段,显示我正在尝试完成的任务:
foreach(var item in items)
{
var helper = new HtmlHelper<ProjName.MyModel>(ViewContext, ????);
%>
<tr>
<%
foreach(var property in properties)
{
%>
<td>
<%= helper.Display(property.DisplayName) %>
</td>
<%
}
%>
</tr>
<%
}
Run Code Online (Sandbox Code Playgroud)
基本上,我想使用集合中的项目填充表格的单元格.我只需要帮助设置helper变量.
在这种情况下realloc会失败吗?
int *a = NULL;
a = calloc(100, sizeof(*a));
printf("1.ptr: %d\n", a);
a = realloc(a, 50 * sizeof(*a));
printf("2.ptr: %d\n", a);
if(a == NULL){
printf("Is it possible?\n");
}
return (0);
Run Code Online (Sandbox Code Playgroud)
}
我的输出是:
1.ptr: 4072560
2.ptr: 4072560
Run Code Online (Sandbox Code Playgroud)
所以'a'指向相同的地址.那么我应该强制执行realloc检查吗?
稍后编辑:
稍后编辑 2:检查这种方式可以吗?
int *a = NULL, *b = NULL;
a = calloc(100, sizeof(*a));
b = realloc(a, 50 * sizeof(*a));
if(b == NULL){
return a;
}
a = b;
return a;
Run Code Online (Sandbox Code Playgroud) c# ×4
.net ×2
reflection ×2
.net-4.0 ×1
asp.net-mvc ×1
c ×1
common-lisp ×1
dynamic ×1
fitnesse ×1
generics ×1
oop ×1
perl ×1
realloc ×1
report ×1
reporting ×1
user-agent ×1