我们的代码库有很多以下示例,因为我们允许根据客户的个性化需求定制很多基页.
<cfif fileExists("/custom/someFile.cfm")>
<cfinclude template="/custom/someFile.cfm" />
<cfelse>
<cfinclude template="someFile.cfm" />
</cfif>
Run Code Online (Sandbox Code Playgroud)
我想创建一个自定义CF标签,以此作为一个简单的模板<cf_custominclude template="someFile.cfm" />
,但我遇到了自定义标签实际上是黑盒子的事实,所以他们没有拉动标签开始之前存在的局部变量,我可以引用由于标记导致的任何变量导入文件.
例如
<!--- This is able to use someVar --->
<!--- Pulls in some variable named "steve" --->
<cfinclude template="someFile.cfm" />
<cfdump var="#steve#" /> <!--- This is valid, however... --->
<!--- someVar is undefined for this --->
<!--- Pulls in steve2 --->
<cf_custominclude template="someFile.cfm" />
<cfdump var="#steve2#" /> <!--- This isn't valid as steve2 is undefined. --->
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题,还是应该利用其他语言功能来实现我的目标?
我有两个类实现IMyInterface
返回类型的异步方法Task<IMyInterface>
.
为什么我的return语句收到编译器错误"没有隐式转换类型" return SomeBooleanDeterminedByTheMethod ? Class1 : new Class2();
,解决此问题的最佳步骤是什么?
完整方法:
public static async Task<IMyInterface> MyMethodAsync(Subclass1 Class1Child)
{
var listOfThings = new List<Tuple<int, Class1>>();
await Task.Run(() =>
{
foreach (var item in SomeCollection)
{
var DummyClass1 = new Class1() {IntProperty = 0};
var computationResult = new Tuple<int, Class1>( DummyClass1.IntProperty, DummyClass1);
listOfThings.Add(computationResult);
}
}
try
{
var returnedClass1 = (from items in listOfThings
orderby items.Item1
select items.Item2).FirstOrDefault();
return returnedClass1.BooleanProperty ? returnedClass1 : new Class2();
}
catch ... …
Run Code Online (Sandbox Code Playgroud)