小编Mem*_*sen的帖子

通过测验了解C#中的嵌套泛型类

在与同事谈论C#时,他向我展示了一些我必须预测输出的C#代码.这看起来很简单,但事实并非如此.我无法理解为什么C#以这种方式行事.

代码:

public class A<T1>
{
    public T1 a;

    public class B<T2> : A<T2>
    {
        public T1 b;

        public class C<T3> : B<T3>
        {
            public T1 c;
        }
    }
}

class Program
{
    static void Main(string[] args)
    {
        A<int>.B<char>.C<bool> o = new A<int>.B<char>.C<bool>();

        Console.WriteLine(o.a.GetType());
        Console.WriteLine(o.b.GetType());
        Console.WriteLine(o.c.GetType());

        Console.ReadKey();
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是:

System.Boolean
System.Char
System.Int32
Run Code Online (Sandbox Code Playgroud)

如果我错了,请纠正我,但我知道这o.a是bool类型,因为C<T3>继承自B<T3>B<T2>继承自A<T2>.我也可以稍微明白o.c是int类型的,因为类型c就是T1它从外部类获取(我认为).

当我试图弄清楚为什么o.b是char类型时,我的脑袋几乎爆炸了.谁可以给我解释一下这个?

c# generics inheritance nested

60
推荐指数
2
解决办法
1939
查看次数

tinymce jquery版本vs jquery插件

tinymce jQuery tinymce jQuery 插件有什么区别?有任何功能差异吗?决定使用哪一个的标准是什么?

jquery tinymce

19
推荐指数
2
解决办法
6887
查看次数

元素<Import>中"Project"属性的值""无效.vs2012

尝试在visual studio 2012中加载一些项目时出现以下错误:

G:\path\project.csproj : error  : The value "" of the "Project" attribute in element <Import> is invalid. Parameter "path" cannot have zero length.
Run Code Online (Sandbox Code Playgroud)

在svn结账后,我正在尝试这个机器.这些项目可以正确加载到其他机器上.

有人可以帮我解决这个问题吗?谷歌没有给我答案,我希望如此.

编辑

这是csproj文件的相关部分.

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <Import Project="$(StyleCopTargets)" />

</Project>
Run Code Online (Sandbox Code Playgroud)

c# csproj visual-studio-2012

12
推荐指数
1
解决办法
1万
查看次数

这可能不使用JavaScript吗?

我使用JSFiddle创建了一个简单的Web UI,我想知道是否可以在不使用JavaScript的情况下创建相同的UI .

一个小提琴说超过1000个单词.

所以问题是(因为对某些人来说似乎不太清楚):如何在不使用任何JavaScript的情况下实现相同的结果?

PS:我不想使用JavaScript重新计算每个滚动事件的位置,因为IE中的重新定位不够平滑.

HTML:

<div class="A">
    <div class="B">
        B
    </div>

    <div class="C">
        This stays fixed when scrolling horizontally, but scrolls along when scrolling down the parent.
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.A {
    background-color: yellow;
    height: 400px;
    width: 700px;
    overflow:scroll;
    position: relative;
}

.B {
    background-color: green;
    height: 1000px;
    width: 1500px;
    position: absolute;
    top:0;
    color:white;
}

.C {
    background-color: red;
    position: absolute;
    left: 100px;
    top: 0px;
    height: 1000px;
    width: 100px;
}
Run Code Online (Sandbox Code Playgroud)

JS(使用jQuery):

$('.A').scroll(function(e) {
    $('.C').css('left', …
Run Code Online (Sandbox Code Playgroud)

html javascript css

12
推荐指数
1
解决办法
283
查看次数

Func <>与委托和lambda表达式之间的区别

在深化自己使用C#的更高级功能的同时,我遇到了一些代码,我并不知道它的区别.这是关于这两行:

Func<string, int> giveLength = (text => text.Length);
Run Code Online (Sandbox Code Playgroud)

Func<string, int> giveLength = delegate(string text) { return text.Length; };
Run Code Online (Sandbox Code Playgroud)

这可以以相同的方式使用:

Console.WriteLine(giveLength("A random string."));
Run Code Online (Sandbox Code Playgroud)

所以基本上......这两条线有什么区别?这些行是否编译为相同的CIL?

c# lambda delegates func

11
推荐指数
2
解决办法
2万
查看次数