小编K M*_*hta的帖子

在自己的匿名Tick事件处理程序中停止DispatcherTimer

做这样的事情是安全的:

private void MyFunction()
{
    DispatcherTimer timer = new DispatcherTimer();
    timer.Interval = new TimeSpan(0, 0, 1);
    timer.Tick += (object sender, object e) =>
    {
        timer.Stop();
        // Some code here
    };
    timer.Start();
}
Run Code Online (Sandbox Code Playgroud)

c# silverlight wpf dispatchertimer

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

WPF:崩溃GridSplitter?

我有一个WPF页面,上面有一个Grid.

有三排.第0行包含GridView Height="*".第1行包含GridSplitter Height="auto".第2行包含详细信息表单Height="2*".

这是事情 - 我有一个按钮,应该切换详细信息表单的可见性.这很好用.除了它只隐藏第2行中的表单,它不会扩展第0行中的网格以填充空格.我想要的是按钮在第0行中切换GridView以占用所有空间,然后切换回原来的位置.

显然,使用行内表单的可见性无法完成我想要的任务.

但是我需要玩什么呢?

wpf xaml gridsplitter

6
推荐指数
3
解决办法
7170
查看次数

两个数组声明方法c ++之间的区别

这些可能是在c ++中声明数组(并为它们分配内存)的两种方法中的两种

1. int a[3];

2. int *b = new int[3];
Run Code Online (Sandbox Code Playgroud)

我想了解c ++如何以不同的方式处理这两者.

一个.在这两种情况下,我都可以使用以下语法访问数组:a[1]b[1]

湾 当我尝试cout<< acout<< b,都打印相应数组的第一个元素的地址.

它看起来好像a和b都被视为指向数组的第一个元素的指针.

C.但奇怪的是,当我尝试这样做时cout << sizeof(a),sizeof(b)他们分别打印出不同的值 - 分别为4和12.

我不明白为什么在这种情况下sizeof(b),正在打印整个数组的大小.

c++ arrays pointers memory-management dynamic-memory-allocation

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

尝试在重命名后在Java中设置文件的上次修改时间

这是我开始使用的代码:

long modifiedTime = [some time here];
File oldFile = new File("old_name.txt");
boolean renamed = oldFile.renameTo(new File("new_name.txt");
boolean timeChanged = oldFile.setLastModified(modifiedTime);

System.out.println("renamed: " + renamed);
System.out.println("time changed: " + timeChanged);
Run Code Online (Sandbox Code Playgroud)

我看到的输出是:

renamed: true
time changed: false
Run Code Online (Sandbox Code Playgroud)

但当我尝试时:

long modifiedTime = [some time here];
boolean renamed = new File("old_name.txt").renameTo(new File("new_name.txt"));
boolean timeChanged = new File("new_name.txt").setLastModified(modifiedTime);

System.out.println("renamed: " + renamed);
System.out.println("time changed: " + timeChanged);
Run Code Online (Sandbox Code Playgroud)

这个输出似乎工作得很好:

renamed: true
time changed: true
Run Code Online (Sandbox Code Playgroud)

为什么第二种方法有效,第一种方法不适用?

java last-modified file-rename

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

表达优先?这个结果怎么样?

在cpp中,以下代码片段的结果是:5 5 5但是在java中,相同代码片段的结果是:3 5 7我不知道为什么,是否有人可以解释它?非常感谢!

class H
{
  public:
    H &pr (int n, char * prompt)
    {
        cout<<prompt<<n<<" ";
        return *this;
    }

    H &fn(int n)
    {
        return pr(n,"");
    }
};

void test()
{
    int v=3;
    H h;
    h.fn(v).fn(v=5).fn((v=7));
}
Run Code Online (Sandbox Code Playgroud)

c++

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

在javascript中删除各种范围内的Unicode字符

我试图删除字符串中的每个Unicode字符,如果它落在下面的任何范围内.

\uD800-\uDFFF
\u1D800-\u1DFFF
\u2D800-\u2DFFF
\u3D800-\u3DFFF
\u4D800-\u4DFFF
\u5D800-\u5DFFF
\u6D800-\u6DFFF
\u7D800-\u7DFFF
\u8D800-\u8DFFF
\u9D800-\u9DFFF
\uAD800-\uADFFF
\uBD800-\uBDFFF
\uCD800-\uCDFFF
\uDD800-\uDDFFF
\uED800-\uEDFFF
\uFD800-\uFDFFF
\u10D800-\u10DFFF
Run Code Online (Sandbox Code Playgroud)

作为初始原型,我试图通过在replace函数中使用正则表达式来删除第一个范围内的字符.

var buffer = "he\udfffllo world";
var output = buffer.replace(/[\ud800-\udfff]/g, "");
d.innerText = buffer + " is replaced with " + output;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,角色似乎已被替换为罚款.

但是,当我用它替换它

var buffer = "he\udfffllo worl\u1dfffd";
var output = buffer.replace(/[\ud800-\udfff\u1d800-\u1dfff]/g, "");
d.innerText = buffer + " is replaced with " + output;
Run Code Online (Sandbox Code Playgroud)

我看到一些意外的事情 我的输出显示为:

hellloworl᷿fd被替换为

这里有两点需要注意:

  1. \u1dfff不显示为一个字符 - \u1dff转换为字符,f最后它被视为自己的字符
  2. 结果是一个空字符串.

关于如何实现这一目标的任何建议都将非常感激.


编辑

我的总体目标是过滤掉 …

javascript regex unicode replace astral-plane

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

使用 createReducer 时在切片减速器之间共享数据

我有一个ReactJS应用TypeScriptredux和我用redux-toolkit建立我的减速器。随着应用程序变得越来越大,我想开始重构我的减速器。

我的 redux 状态如下所示:

{
  customers: Customers[],
  orders: {
    state1: SomeIndependentState1,
    state2: SomeIndependentState2,
    state3: SomeDependentState2,
    state4: SomeDependentState3,
  }
}
Run Code Online (Sandbox Code Playgroud)

customersorders片是独立的,我可以很容易地写出两个不同的减速对他们来说,他们结合combineReducers后。

现在,我想进一步分解我的orders减速器。

  • state1并且state2是完全独立的。
  • state3取决于来自 的数据state1
  • state4取决于来自state1和 的数据state2

有没有办法继续使用createReducerfrom redux-toolkit(或工具包中的其他功能)为切片中的每个嵌套切片创建减速器orders

当我开始为 重写我的 reducer 时orders,这是我到目前为止所拥有的:

export const ordersReducer = (state: Orders, action: AnyAction) => {
  return { …
Run Code Online (Sandbox Code Playgroud)

reactjs react-redux redux-toolkit

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

.NET中的垃圾收集器

垃圾收集器如何知道对象和变量超出范围,以便垃圾收集器可以收集它们?

.net asp.net garbage-collection c#-4.0

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

wpf中的2路绑定调用属性两次

我一直在玩wpf和2路数据绑定以更好地理解它,并且我注意到当文本框有2路数据绑定到属性时,属性被调用两次.我通过在调用属性时将值写入输出窗口来验证这一点.我的代码如下: -

我的xaml

<Page
    x:Class="_2waybindTest.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:_2waybindTest"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <TextBox HorizontalAlignment="Left" Margin="55,93,0,0" TextWrapping="Wrap" Text="{Binding TestProperty, Mode=TwoWay}" VerticalAlignment="Top" Width="540"/>
        <Button Content="Button" HorizontalAlignment="Left" Margin="55,31,0,0" VerticalAlignment="Top" Click="Button_Click_1"/>
        <TextBox HorizontalAlignment="Left" Margin="55,154,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="540"/>
    </Grid>
</Page>
Run Code Online (Sandbox Code Playgroud)

我要测试的简单viewmodel类

public class viewmodel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    private string _TestProperty;

    public void SetTestProperty()
    {
        this.TestProperty = "Set Test Property";
    }

    public string TestProperty{
        get
        {
            return this._TestProperty;
        }
        set
        {
            this._TestProperty = value;

            if (PropertyChanged != null)
            {
                PropertyChanged(this, …
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf xaml

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

检查通用IEnumerable是否为空

假设我有一个可能类型的对象IEnumerable<T>.我想写一个方法,如果对象是类型IEnumerable<T>,不是null,并且不为空,则返回true .

这是我到目前为止所得到的:

public bool IsNullOrEmpty(object obj)
{
    if (obj != null)
    {
        if (obj is IEnumerable<object>)
        {
            return (obj as IEnumerable<object>).Any();
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

如果我传入一个类型的对象List<string>,但是如果我传入一个类型的对象则不行List<int>.失败是因为因为obj is IEnumerable<object>回归false.

知道如何让所有通用IEnumerables工作吗?

c# linq generics

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