小编Stu*_*urm的帖子

不等于字符串

我正试图设置这样的条件

    if (myString=!"-1")
{
//Do things
}
Run Code Online (Sandbox Code Playgroud)

但它失败了.我试过了

if(myString.Distinct("-1")) 
    {
    //Do things
    }
Run Code Online (Sandbox Code Playgroud)

但它也不起作用.

c# string

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

while 循环中线程睡眠的替代方案

在我的应用程序中,我有少量线程 (5) 不间断地执行以下方法:

private void ThreadMethod()
{
     while(true)
     {
          if(CurrentItem != null)
          {
               HandleCurrentItem();
          }
          Thread.Sleep(200);
     }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,这不是推荐的做法,但大多数争论是因为您没有响应能力,并且无法取消线程或时间不精确。这些对我来说都不是问题,但是我担心在此浪费太多 CPU 资源。从我在01:05:35看到的情况来看,当您调用 Sleep 方法时,处理器会得到充分利用。

我的问题:

在我的场景中这是一个不错的解决方案吗?如果没有的话,怎样才能做得更好呢?

注意:我使用的是.Net Framework 4.0

注 2:这些线程位于类的不同实例中,因此CurrentItem每个线程都有不同的对象。

c# wpf multithreading sleep

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

从末尾删除向量中的所有空元素

给定一个std::vector字符串,删除从末尾开始的所有空元素(等于空字符串或空格)的最佳方法是什么。当发现非空元素时,应停止删除元素。

我当前的方法(正在进行中)类似于:

while (Vec.size() > 0 && (Vec.back().size() == 0 || is_whitespace(Vec.back()))
{
    Vec.pop_back();
}
Run Code Online (Sandbox Code Playgroud)

whereis_whitespace返回一个 bool 值,说明字符串是否为空格

我怀疑我的方法会在每次迭代时调整向量的大小,这是次优的。也许通过某种算法可以一步完成。

输入:{ "A", "B", " ", "D", "E", " ", "", " " }

所需输出:{“A”,“B”,“”,“D”,“E”}

c++ string vector

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

Qt 嵌套模型视图

我来自 C# 和 WPF,在那里我们有很好的方法将集合绑定到视图,通过当前的 DataContext 填充数据。

我一直在学习 Qt,我知道有一种方法可以提供带有模型的视图 (QAbstractItemModel),然后通过修改模型,您可以自动更新视图,这很好,也是我想要的。

我目前的问题是我想为以下课程创建一个编辑器视图 Definition

class Definition
{
public:
    vector<Step*> Steps;

    bool SomeBoolMember1;
    bool SomeBoolMember2;
    int SomeIntMember1;
    int SomeIntMember2;
}
Run Code Online (Sandbox Code Playgroud)

Step

class Step
{
public:
    vector<Requirement*> Requirements;

    bool SomeBoolMember1;
    bool SomeBoolMember2;
    int SomeIntMember1;
    int SomeIntMember2;
}
Run Code Online (Sandbox Code Playgroud)

并且Requirement

class Requirement
{
public:
    RequirementType Type;
}
Run Code Online (Sandbox Code Playgroud)

我的目标是构建一个能够修改Definitions集合的视图。一个可能的观点可能是这样的:

在此处输入图片说明

选择不同的定义时,更新所选项目视图(要加载所选定义的数据),然后我们有一个带有步骤列表的滚动视图。每个步骤都有一个要求列表。

如您所见,这不是火箭科学,但我知道这可能很乏味。关于如何构建模型/视图模型以实现所需功能的任何提示?

c++ user-interface qt

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

Qt QToolBar的get按钮由addAction添加

在Qt中,当我们使用a的功能addActionQToolBar

_LastBar->addAction(QtExtensions::Action(name, icon, func));
Run Code Online (Sandbox Code Playgroud)

我们如何检索QToolButton为该动作生成的?

或者,如果不可能,如何找到的最后一个按钮/小部件QToolBar

c++ qt qtoolbar qpushbutton

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

合并词典的噩梦

我正在尝试使用 WPF 模板,并且应该将其包含在我的 App.xaml 中,但我收到“不支持嵌套属性:ResourceDictionaries.MergedDictionaries”错误和“在中找不到可附加属性“MergedDictionaries”输入“资源字典”。

 <Application x:Class="Unico.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

                 StartupUri="MainWindow.xaml">
        <Application.Resources>
            <ResourceDictionary.MergedDictionaries>

                <!-- Set default skin -->
                <ResourceDictionary Source="\ExpressionDark.xaml"/>
                <ResourceDictionary Source="\WindowStyle.xaml"/>


            </ResourceDictionary.MergedDictionaries>

            <Style TargetType="{x:Type Rectangle}" />

        </Application.Resources>
    </Application>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一切,但仍然无法解决这个问题。任何想法?谢谢。

c# wpf mergeddictionaries

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

#region的"大规模"使用被认为是一种不好的做法吗?

MainViewModel必须处理许多内部复杂动作的命令,因此它的扩展已经不可避免.为了保持代码的有序性,我倾向于将#region类似的相关任务分组.这是否被认为过度使用此功能或者这是完全正常的?你可能会说这取决于我,如果我对此感觉正确的话.我认为它有很多帮助,但我想知道其他人做了什么.以下是代码如何显示的屏幕截图:

在此输入图像描述

c# region

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

ToggleButton 内容绑定到其状态

我需要在这个问题中得到解决,不幸的是它是针对 Silverlight 的,我无法使“交互性”库工作。

我有一个ToggleButton,我想在Content未选中时选中“再见”时将属性更改为“你好”。在这种情况下,我不能手动更改它,因为可以从多个来源更改状态。

我认为此任务可能需要转换器,并且我已经看到转换器到 Visibility 而不是字符串。

编辑:我想过将这两个词放在一个堆栈面板中,并将可见性 Visible/Collapsed 绑定到状态:

         <ToggleButton.Content>
          <StackPanel>
              <TextBlock Text="Hello" Visibility="{Binding ...}"/>
              <TextBlock Text="GoodBye"/>
          </StackPanel>
      </ToggleButton.Content>
Run Code Online (Sandbox Code Playgroud)

c# wpf togglebutton

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

我应该如何解释这个int初始化?

我已经为C#编程了好几个月了,但直到现在我才遇到过这个问题.这个指令是什么意思?

int a = 1, b;
Run Code Online (Sandbox Code Playgroud)

c#

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

Matblazor组件属性:内容复杂

我正在尝试制作一个按钮,如果某个条件为假,该按钮将被禁用。对于常规按钮,这有效:

<button @disabled="!IsReady">Click me</button>
@code
{
    public bool IsReady { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用 MatBlazor 库,其MatButton版本为button

<MatButton Disabled="@!IsReady">Click me</MatButton>
Run Code Online (Sandbox Code Playgroud)

后者不起作用:它给出以下错误:

组件属性不支持复杂内容(混合 C# 和标记)

在好的 WPF 中,我们可能会在绑定中使用转换器,因此绑定的布尔值是反转的。这是 MatBlazor 的限制吗?

我看到的快速解决方案是执行以下操作:

<MatButton Disabled="@IsNotReady">Click me</MatButton>
@code
{
    public bool IsReady { get; set; }
    public bool IsNotReady => !IsReady;
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

binding blazor matblazor

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