小编Bar*_*zek的帖子

如何明智地使用StringBuilder?

我对使用StringBuilder课程感到困惑,首先:

一个string对象串联操作总是创建从现有的一个新的对象string和新的数据.甲StringBuilder对象维护一个缓冲器,以适应新的数据的串联.如果房间可用,新数据将附加到缓冲区的末尾; 否则,分配一个新的较大缓冲区,将原始缓冲区中的数据复制到新缓冲区,然后将新数据附加到新缓冲区.

但是创建StringBuilder实例以避免创建新实例的重点在哪里String?这听起来像是"一对一"交易.

static void Main(string[] args)
{
    String foo = "123";
    using (StringBuilder sb = new StringBuilder(foo)) // also sb isn't disposable, so there will be error
    {
        sb.Append("456");
        foo = sb.ToString();
    }

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

为什么我不应该只使用

+=
Run Code Online (Sandbox Code Playgroud)

编辑:好的,我现在知道如何重用的一个实例StringBuilder(仍然不知道这是否是正确的代码标准),但是这是不值得的只有一个使用string的,不是吗?

.net c# memory string stringbuilder

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

从Laravel 5.3中的任何视图中隐藏任何元素的智能方法?

我遇到一个问题,我不想在某些视图中显示X元素.

真正的例子是,我不希望显示在页面上的产品形象滑块contactabout us,但它应该是在所有其他页面上看到(约6个)

因此,如何排除渲染在div ñ页面未做很长的@if条件是什么?对于时尚解决方案的想法?

编辑 回答我为什么不想把它放在独立视图文件中的问题:
想象一下,除了特定的视图外,您希望所有视图中都显示此行,并且只有一个

<span>Lorem Ipsum</span>
Run Code Online (Sandbox Code Playgroud)

这只是一行HTML代码,不值得在项目中创建另一个文件,因为它会在项目文件树中混乱,另一个例子是一个糟糕的解决方法

@if(\Request::route()->getName() !== "some.very.long.route.alias.name.that.looks.ugly")
    <span>Lorem Ipsum</span>
@endif
Run Code Online (Sandbox Code Playgroud)

使项目增长时难以阅读和理解代码

编辑2 我预测了一些建议的解决方案,并已经写了为什么这不适合处理这个问题.我看起来更有可能找到类似于@can@cannot取决于当前路线的解决方案

编辑3: 解决方案

编辑4: 我在这里发布了一个答案,但它还不完美(我不会将其标记为已接受),所以对于本主题的读者我将在下面粘贴它的副本

好的,我已经制作了一个简单的刀片指令,以一种漂亮的方式解决了这个问题

首先,创建一个数组,确定html代码段的路由访问权限
最佳位置是在config目录中创建此文件,例如presence.php文件

<?php
return [
    'ipsum' => [            // presence alias
        'about',            // disallowed route #1
        'contact'           // disallowed route #2
    ],
];
Run Code Online (Sandbox Code Playgroud)

然后在AppServiceProvider.php类中创建一个指令

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * …
Run Code Online (Sandbox Code Playgroud)

php user-interface laravel

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

如何从flutter插件本机代码返回小部件?

我正在尝试学习 flutter 插件开发,因为无论如何我都需要它来认真移植本机 SDK。

关键是,我真的不知道如何返回一个Activity可以Widget放置在任何ColumnRow等等中的 Android。

目前,我所做的只是移植 Android 的Toast功能。

flutter 地图插件似乎有点过于复杂,在我学习它的同时,我仍然在寻找一个更简单的示例来说明如何将本机布局转换为 Flutter 小部件。

plugins android native package flutter

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

WebClient下载字符串(几个字符页面)太慢了

我正在尝试从URL下载字符串.不幸的是,它很慢.

这是我的代码:

    // One of these types for two bad solutions anyway
    // byte[] result = new byte[12];
    // string result;
    using (var webClient = new System.Net.WebClient())
    {
        String url = "http://bg2.cba.pl/realmIP.txt";
        //result = webClient.DownloadString(url); // slow as hell
        //webClient.OpenRead(url).Read(result, 0, 12); // even slower
    }
Run Code Online (Sandbox Code Playgroud)

这需要大约4-5秒,这对我来说似乎非常不合适......

此网址的内容为IP

 XX.YYY.ZZ.FF
Run Code Online (Sandbox Code Playgroud)

c# performance webclient downloadstring

4
推荐指数
1
解决办法
5158
查看次数

为什么必须在 TS 函数类型中指定参数名称?

我正在使用打字稿编写一些函数,这是 TS 接受的函数:

export const useSomething = <T>() => {
    const useStorage = <T>(key: string, initialData: T) : [T, (newData: T) => Promise<void>] => {
        const [data, setState] = useState<T>(initialData);
        const setData = async(newData: T) : Promise<void> => {
            await storage.setItem<T>(key, newData);
        };
        return [data, setData];
    }
};
Run Code Online (Sandbox Code Playgroud)

useStorage但最初我想这样写返回类型:

[T, (T) => Promise<void>]
Run Code Online (Sandbox Code Playgroud)

newData为什么 TypeScript 要我在发生之前写下名字T

javascript generics typescript typescript-generics

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

如何在.NET 3.5中每2分钟调用一次UserControl中的函数

所以我用dataGridView创建了UserControl,实际上我将如何对这个对象不太重要,但是假设我已经使用了DataSource,我想用这些值刷新dataGridView.

例如,我有函数fillDataGridView(),我希望它每2分钟调用一次

我认为我可以用Thread类做到这一点,但还没有成功

你如何处理UI刷新?

我知道这看起来像"另一个有UI更新问题的人",但从我看到的我真的不能用最简单的方法来做到这一点

public partial class Alertbox : UserControl
{
    private static System.Timers.Timer aTimer;

    public Alertbox()
    {
        InitializeComponent();

        aTimer = new System.Timers.Timer(10000);

        aTimer.Elapsed += new ElapsedEventHandler(Update);

        aTimer.Interval = 2000;
        aTimer.Enabled = true;
    }

    public void Update(object source, ElapsedEventArgs e)
    {
        BT_AddTrigger.Text += "test"; // append to button text
    }
}
Run Code Online (Sandbox Code Playgroud)

它喊出来了

System.Windows.Forms.dll中发生类型为"System.InvalidOperationException"的异常但未在用户代码中处理附加信息:跨线程操作无效:控制从其创建的线程以外的线程访问的"BT_AddTrigger"上.

c# user-interface

2
推荐指数
1
解决办法
773
查看次数

使用Linux命令删除超过1天的子目录中的文件

老实说,我远未成为一名体面的bash脚本编写者,但我进行了一些研究,发现了一条似乎有用的命令

find /path/to/files* -mtime +1 -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)

问题是此行是否将删除目录?因为我只想删除图像文件(实际上是* .jpeg格式)

linux bash rm

2
推荐指数
1
解决办法
2889
查看次数

HTML 标签名称而不是 ID?

我正在制作网站,在那里我创建了许多在输出中分配的标签,如下所示

使用帖子末尾的小提琴链接

<!-- lets say that I want to make a kind of board to show some game clans or... whatever -->

<label class='team' name='ally'>Madcowz</label><BR>
<label class='team' name='ally'>Fluffy Unicorns</label><BR>
<label class='team' name='enemy'>Blue bastards</label><BR><BR>

<b>JS stuff:</b>
<div id='printSomeOutputHere'></div>

<!-- The problem is that the NAME tag does not exist for label in this case: -->
<!-- I can't use ID because ID should be unique values -->
<script>
var teams = $(".team");
for(i=0; i<teams.length; i++)
{
    document.getElementById('printSomeOutputHere').innerHTML += teams[i].name + ": …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

-1
推荐指数
1
解决办法
2570
查看次数