我对使用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的,不是吗?
我遇到一个问题,我不想在某些视图中显示X元素.
真正的例子是,我不希望显示在页面上的产品形象滑块contact和about 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文件Run Code Online (Sandbox Code Playgroud)<?php return [ 'ipsum' => [ // presence alias 'about', // disallowed route #1 'contact' // disallowed route #2 ], ];然后在
AppServiceProvider.php类中创建一个指令Run Code Online (Sandbox Code Playgroud)<?php namespace App\Providers; use Illuminate\Support\Facades\Blade; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * …
我正在尝试学习 flutter 插件开发,因为无论如何我都需要它来认真移植本机 SDK。
关键是,我真的不知道如何返回一个Activity可以Widget放置在任何Column或Row等等中的 Android。
目前,我所做的只是移植 Android 的Toast功能。
flutter 地图插件似乎有点过于复杂,在我学习它的同时,我仍然在寻找一个更简单的示例来说明如何将本机布局转换为 Flutter 小部件。
我正在尝试从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) 我正在使用打字稿编写一些函数,这是 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?
所以我用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"上.
老实说,我远未成为一名体面的bash脚本编写者,但我进行了一些研究,发现了一条似乎有用的命令
find /path/to/files* -mtime +1 -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
问题是此行是否将删除目录?因为我只想删除图像文件(实际上是* .jpeg格式)
我正在制作网站,在那里我创建了许多在输出中分配的标签,如下所示
使用帖子末尾的小提琴链接
<!-- 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)