小编ove*_*ked的帖子

可选嵌套?这个语言功能叫做什么,它的目的是什么?

我遇到了一些有趣的东西,我似乎无法找到更多的信息,或者是一个正确的名称.

我想我们大多数人都知道如果你有多个using块,你只需要在最后一个之后包括括号using:

using (FileStream fileStream = new FileStream(zipFilePath, FileMode.Open))
using (ZipInputStream zipStream = new ZipInputStream(fileStream))
{
    //stuff
}
Run Code Online (Sandbox Code Playgroud)

然而,在我周围发现,我发现以下代码也可以工作,没有紧随其后的括号using,捎带while:

using (BinaryWriter br = new BinaryWriter(context.Response.OutputStream))
while (true)
{
    //stuff
}
Run Code Online (Sandbox Code Playgroud)

有谁知道这种语言"功能"的名称,允许代码块合并?

c#

5
推荐指数
1
解决办法
151
查看次数

Lambdas超过多态类

在下面的代码中,请注意Bar来自Foo.

class Program
{
    public class Foo
    {
        public string data { get; set; }
    }

    public class Bar : Foo
    {
    }

    static void Main(string[] args)
    {
        var bars = new List<Bar>();

        bars.Add(new Bar() { data = "hello" });
        bars.Add(new Bar() { data = "world" });

        var resultsA = GetFoos(bars, (b => b.data.StartsWith("h")));
        var resultsB = GetBars(bars, (b => b.data.StartsWith("h")));
    }

    static List<Foo> GetFoos(List<Foo> fooList, Func<Foo, bool> criteria)
    {
        return fooList.Where(criteria).ToList();
    }

    static List<Bar> GetBars(List<Bar> barList, Func<Bar, bool> criteria) …
Run Code Online (Sandbox Code Playgroud)

c# linq lambda

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

使用内联对象创建减少.Net代码

我已经成功地将几行代码压缩了

For Each gal In galleries
   With New HtmlGenericControl("div")
                .ID = gal.Header
                .Controls.Add(New HtmlImage() With {.Src = "http://p.com/pic.jpg"})

                galleryContent.Controls.Add(**Me**)
   End With
Next
Run Code Online (Sandbox Code Playgroud)

我找不到任何地方如何引用回到我正在使用的对象将控件添加回'galleryContent' - 使用普通me崩溃整个Web服务器... whooops.

使用不提供刚刚使用的较短手. - 但它使用唯一的方法来做到这一点?我特意期待某种类似的.Me 东西this

有任何想法吗?

.net vb.net visual-studio-2010

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

标签 统计

c# ×2

.net ×1

lambda ×1

linq ×1

vb.net ×1

visual-studio-2010 ×1