小编Joh*_*ith的帖子

有无标签的HTML好吗?

有时候在我当前的项目中,我只是单独使用HTML.嗯,我的意思是,显然它被其父元素所包围,但是......让我只使用一个代码示例.

<input name="search" type="text" />
<input value="Search" type="submit" /> | 
<a href="test.php">Test</a>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,"|"本身就是.在这一点上,有人可能会说使用垂直分隔符CSS类,但这不是唯一的情况.有时我可能会有类似"没有"的东西.这个可以吗?是否应该将所有内容都包装在CSS类中,即使所述类是空的并且不需要样式化?我认为它有前途的证据,以防有一天它可能需要造型,但现在它只是CSS膨胀.

html css

6
推荐指数
2
解决办法
500
查看次数

为什么在C#中更改滚动条的LargeChange值会破坏它?

这对我来说真的没有意义.如果LargeChange设置为1,我的滚动条将完美运行,但如果我将其设置为10,则它不会一直滚动.如果我将其设置为100,则无法进一步滚动.对于所有这些示例,SmallChange设置为1.

我想可能发生的事情可能是,如果LargeChange是10而最大值是100,例如,如果值是95,那么你将无法滚动,但即使在那个值,我根本无法做一个小的改变.这对我没有任何意义.谁能解释一下?

c# scrollbar

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

当表单的类变得太大时该怎么办?

目前我的主要表单有很多事件处理程序,因为有很多控件.它非常类似于绘画应用程序.我已经将它压缩了很多,我尽可能地共享事件处理程序,但是类仍然是大约1,000行代码.我意识到这对你们所有人来说可能并不多,但它比我的其他课程要大得多.

我已经为其他类重构了很多代码,但是所有这些事件处理程序仍然会大量增加行数.我也开始使用区域块将事件处理程序分成组,并且工作得相当好但我仍然想知道SO对此问题的看法,以便最好地组织大量的表单事件处理程序.

编辑:所以我一直在使用部分课程,我必须说,我真的不喜欢他们.我不知道此时该做什么.

我可能会回到使用区域块,因为我不确定用户控件是否会帮助解决我的问题.老实说,我不介意该地区阻挡那么多.那个类是我使用它们的唯一地方,它很好地组织了代码的不同部分(菜单事件处理程序,工具条事件处理程序,拖放支持等等).

尽管如此,如果任何人仍然有任何其他想法或者想详细说明迄今为止发布的任何想法,我会非常感激,因为我仍然在寻找更好的解决方案来解决这个问题.

c# design-patterns winforms

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

如何用TcpClient应对Nagle的算法?

我正在阅读这篇文章,并在解决方案中注意到,如果您发送与实际数据分开的数据长度,Nagle 的算法可能会发挥作用并使发送的数据不同步。

我想知道这一点,因为我看到很多代码示例客户端首先发送数据的长度,然后发送数据本身以进行单独的调用。这个问题对他们没有影响吗?

我是否应该将数据的长度和数据本身连接到一个字节数组中并一次性发送?如果是这样,是否有一种更好的方法来连接两个字节数组,而无需手动将两个(循环)中的所有数据复制到新数组中?对于经常发生的事情(每次用户或服务器在彼此之间发送数据时)来说,似乎效率很低。

c# tcpclient

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

我需要调用 TcpListener.Stop() 吗?

我将此代码放在一个单独的线程(任务)中,该线程在应用程序启动时首先运行,并且在应用程序关闭之前不应结束:

TcpListener tcpListener = new TcpListener(IPAddress.Any, port);

tcpListener.Start();

while (true)
{
    TcpClient client = tcpListener.AcceptTcpClient();

    Task.Factory.StartNew(HandleClientCommunication, client);
}
Run Code Online (Sandbox Code Playgroud)

这种情况有必要打电话tcpListener.Stop()吗?该线程在应用程序的整个持续时间内运行,如果我确实需要调用它,我会在哪里调用它?侦听器是该线程的本地侦听器。while (true)我可以while (appRunning)在 FormClosing 事件中使用循环并将 appRunning 设置为 false,而不是使用循环吗?然后在 while 循环之后我可以调用tcpListener.Stop().

但是,是否有必要调用,TcpListener.Stop()因为应用程序此时已经关闭,并且由于我正在使用任务,因此该过程也结束了?

c# multithreading

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

我应该使用Invoke或SynchronizationContext来更新另一个线程的表单控件吗?

试图从其他线程更新UI控件.

目前正在使用BeginInvoke,老实说它工作正常,但我一直听说你如何使用SynchronizationContext来做同样的事情.

哪个更受欢迎?

另外,从线程更新UI是不好的做法吗?提出一个事件并让主要表单处理它或者还有其他更好的方法来处理它会更好吗?

对不起,我有些主观的问题,但在线程的世界这么多的选择,我试图抓住他们的分歧,每个人都适用,与写可读和可扩展的代码对未来的最佳实务.

编辑:现在我也看到了TaskScheduler.FromCurrentSynchronizationContext路线也是如此..有很多选择x_x

c# multithreading invoke

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

没有循环可以做到这一点吗?

我很难想到这个问题的解决方案,不涉及循环.基本上,如果某些东西大于某个任意数字,它就会循环.假设64是数字.

0 => 0
32 => 32
64 => 64
96 => 32
128 => 64
160 => 32
192 => 64
Run Code Online (Sandbox Code Playgroud)

等等.

我当前正在做的方式涉及一个while循环,它检查该值是否超过64,如果是,则从中减去64.还有另一种不涉及循环的方法吗?

我正在使用C#WinForms.

c# loops function

4
推荐指数
2
解决办法
118
查看次数

这个流行的StackOverflow答案是否不正确?

我指的是这个帖子.当将大小增加到100000000时,第一个不仅对我来说运行得更快(563 MS与630相比),而且在过去使用for循环中的属性也导致相当大的速度减慢.

一旦写入波形观察器,每帧平均需要23毫秒才能处理.循环遍及整个图片像素的for循环是导致速度减慢的原因.而不是在for循环之前存储图片的宽度和高度,而是在每次迭代期间访问它.在更改它时,处理单个帧的时间从23毫秒变为仅3.

另外,我做了这个示例类:

class LOL
{
    private int x;

    public LOL(int x)
    {
        this.x = x;
    }

    public int X
    {
        get
        {
            return x;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我做了一个循环,循环次数为5000000次.一个测试在循环开始之前将X存储在整数变量中,并且在每次迭代期间访问X属性.前者约需1,500毫秒,后者约为8,000毫秒.

三个测试,每个测试都得出结论,存储前限是业绩增益的最佳解决方案.我错过了什么吗?目前在我的程序中需要优化,因为处理大图片并且在所有性能关键区域中我总是存储环路的边界以获得性能增益,并且这些测试似乎证实了这一点.

c# optimization performance

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

如何重构这个switch语句?

string liquidClass = string.Empty;

switch (cmbLiquidClass.Text)
{
    case "LiquidClass1":
        liquidClass = Settings.Default.LiquidClass1;
        break;
    case "LiquidClass2":
        liquidClass = Settings.Default.LiquidClass2;
        break;
    case "LiquidClass3":
        liquidClass = Settings.Default.LiquidClass3;
        break;
    case "LiquidClass4":
        liquidClass = Settings.Default.LiquidClass4;
        break;
    case "LiquidClass5":
        liquidClass = Settings.Default.LiquidClass5;
        break;
    case "LiquidClass6":
        liquidClass = Settings.Default.LiquidClass6;
        break;
    case "LiquidClass7":
        liquidClass = Settings.Default.LiquidClass7;
        break;
    case "LiquidClass8":
        liquidClass = Settings.Default.LiquidClass8;
        break;
    case "LiquidClass9":
        liquidClass = Settings.Default.LiquidClass9;
        break;
}
Run Code Online (Sandbox Code Playgroud)

试图获取当前类的内容的局部变量.由于字符串的工作方式(行为类似于值类型),我无法使用字典.有没有办法重构这个,以便它不需要这么多行来找到所选择的液体类?

c# refactoring switch-statement

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

为什么网站的MVC需要单一的入口点?

我看到网站的许多MVC实现都有单入口点,例如index.php文件,然后解析URL以确定要运行的控制器.这对我来说似乎很奇怪,因为它涉及使用Apache重写来重写URL,并且有足够的页面使单个文件变得臃肿.

为什么不只是让各个页面成为控制器?我的意思是,如果您的网站上有一个列出所有已注册成员的members.php页面,那么用户导航到的页面将成为成员的控制者.此php文件将在成员模型中查询数据库中的成员列表,并将其传递给成员视图.

我可能会遗漏一些东西,因为我最近才发现MVC,但这个问题一直困扰着我.难道这种设计不是优选的,因为不是有一个膨胀的入口文件,所有页面都不直观地调用模型和特定页面的视图被包含,封装,并从其各自的页面调用?

php model-view-controller

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