小编Ant*_*Tcb的帖子

自定义CFInclude用于文件自定义

我们的代码库有很多以下示例,因为我们允许根据客户的个性化需求定制很多基页.

<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)

有没有办法解决这个问题,还是应该利用其他语言功能来实现我的目标?

coldfusion bluedragon coldfusion-7

3
推荐指数
1
解决办法
125
查看次数

条件表达式返回类型

我有两个类实现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)

c# conditional-operator

0
推荐指数
1
解决办法
931
查看次数