问题列表 - 第279847页

如何关闭窗口但仍使应用程序处于活动状态?

假设我有 2 个窗口:InputWindow 和 DisplayWindow

当前:我想使用 InputWindow 通过 App 变量保存数据

// in InputWindow
(App.Current as App).u_id = obj.id;
Run Code Online (Sandbox Code Playgroud)

其中 u_id 是我在 app.xaml.cs 中定义的对象,obj.id 是 InputWindow 中的输入变量。

但是,当我关闭 InputWindow 并显示 DisplayWindow 时:

// in InputWindow
DisplayWindow window = new DisplayWindow();
window.Show();
Application.Current.MainWindow.Close();
Run Code Online (Sandbox Code Playgroud)

该应用程序还会杀死 InputWindow 中的数据。

所以我的问题是:

有没有办法将数据从关闭的窗口保存到打开的窗口?

c# wpf

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

在我的情况下,我是否需要销毁单例实例?

如果在我使用如下单例实例后终止进程.是否存在内存泄漏?

  1. 如果是,我该如何解决问题?
  2. 我需要添加"destroyInstance"成员函数吗?
  3. 如果是,当多线程已经引用单例实例时,如何确保多线程安全?(我需要添加引用计数吗?)

我想知道如果我需要考虑所有这些,单身模式似乎非常复杂.

#include <mutex>

class Singleton 
{
    static Singleton *singletonInstance;
    Singleton() {}
    static std::mutex m_;

  public:

    static Singleton* getSingletonInstance()
    {
        std::lock_guard<std::mutex> lock(m_);
        if(singletonInstance == nullptr)
        {
            singletonInstance = new Singleton();
        }
        return singletonInstance;
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ singleton singleton-type

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

Clojure宏:从地图创建本地变量

我有这个示例代码,我通过迭代地图的键值对来创建变量.

(defmacro block [bindings & body] 
  `(let [
    ~@(mapcat (fn [[k v]] [(if (symbol? k) k (symbol (name k))) `~v]) bindings) ]
  ~body))

(block {:a 1 :b 2} (if true (prn "true" a b) (prn "false")))
Run Code Online (Sandbox Code Playgroud)

它工作正常.输出:"真实"1 2


但是现在我想传递与var相同的地图,但它会产生异常.

IllegalArgumentException不知道如何从:clojure.lang.Symbol创建ISeq

(def ctx {:a 3 :b 4})

(block ctx (if true (prn "true" a b) (prn "false")))
Run Code Online (Sandbox Code Playgroud)

clojure

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

如何让 Cypress 返回自定义错误或消息

我正在寻找一种创建自定义消息而不是标准消息的方法。我所拥有的是这段代码(有点混乱):

Cypress.Commands.add('authenticate', {prevSubject: 'optional'}, (_, fixture) => {
  return cy.fixture(fixture).then(credentials => {
    cy
      .apiRequest('scrambled/url/here', {
        method: 'post',
        authorizationMethod: 'Basic',
        token: apiOauthSecret,
        data: credentials
      })
      .then(resp => {
        expect(resp.status)
          .to
          .eq(201, 'Unable to authenticate, login failed')
        storeTokenInSession(resp.body)
      })
  })
})
Run Code Online (Sandbox Code Playgroud)

该代码导致如下错误:https : //i.stack.imgur.com/l2j4o.png

如果我修复了代码所以结果没问题,结果看起来像这样:https : //i.stack.imgur.com/Pr1iA.png

如您所见,如果 eq() 失败而不是 eq() 成功,则应显示消息。

我只想在检查失败时显示消息,但我也希望测试中断并停止。

你们知道如何让这个工作吗?我已经研究过使用 cy.log() 和这里显示的解决方案。

javascript cypress

7
推荐指数
2
解决办法
3571
查看次数

在Haskell中调用状态monad"Stack"上的函数

我们有以下类型的任务给出

newtype Trans state a = T {run :: state -> (a,state)}
type Stack a = Trans [Int] a
Run Code Online (Sandbox Code Playgroud)

我想要的是编写一个函数1.按下将一个Integer放在堆栈上2.弹出以返回并删除最高的对象

我试图谷歌通过状态monads来理解它们,我得到了概念,但我无法用给定的类型结构实现它.

monads state haskell

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

为什么与fetch api一起使用时,反应钩会抛出act错误?

Warning: An update to App inside a test was not wrapped in act(...).每当我提出API请求并更新状态时,我都会进入测试套件。

我正在使用反应测试库。我也尝试使用ReactDOM测试工具,得到了相同的结果。我尝试的另一件事是将容器包装在中act,仍然得到相同的结果。

请注意:我的应用程序正常运行,并且我的测试通过了。我只需要知道我在做错什么,或者是否是react-dom程序包中的错误使该错误出现。模拟控制台错误并将其静音是很不好的。

global.fetch = require('jest-fetch-mock');

it('should clear select content item', async () => {
    fetch.mockResponseOnce(JSON.stringify({ results: data }));

    const { container } = render(<App />);

    const content = container.querySelector('.content');

    await wait();

    expect(content.querySelectorAll('.content--item').length).toBe(2);
});
Run Code Online (Sandbox Code Playgroud)

这是钩子实现:

const [data, setData] = useState([]);
const [error, setError] = useState('');

const fetchInitData = async () => {
    try {
        const res = await fetch(API_URL);
        const data = await res.json();

        if …
Run Code Online (Sandbox Code Playgroud)

reactjs react-testing-library react-hooks

7
推荐指数
2
解决办法
4700
查看次数

Unity - 在检查器中自定义绘制结构

我有一个自定义结构,代码如下:

[Serializable]
public struct HexPoint : IEquatable<HexPoint>
{
    public readonly int x;
    public readonly int y;
    public readonly int z;
    
    // Some custom methods for initializations and operators
}
Run Code Online (Sandbox Code Playgroud)

如果我将 x、y 和 z 变量设为非只读,它们就会在统一检查器中正常显示。但是,我有一些他们需要满足的规则(实际上是 x+y+z=0),所以我添加了 readonly 以防止人们弄乱它。

但是作为只读变量,它们不会显示(因为它们不能被修改)!:(

我想知道它们是否是我在统一检查器中显示它们的一种方式,类似于 PropertyDrawer。我知道我可以将我的结构切换到一个类,因为 PropertyDrawer 是为类保留的,但我想将它保留为一个结构。

那么,有没有办法显示值?并最终使用自定义初始值设定项修改它们?

非常感谢!

c# struct unity-game-engine unity3d-editor unity-editor

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

在实体框架中创建通用 DbContext 工厂

我正在使用 .Net Core 2.1。我使用了不止一种DbContext。我正在DbContextFactory为每个上下文创建一个。但是,我想以通用的方式做到这一点。我只想创建一个DbContextFactory. 我怎样才能做到这一点?

MyDbContextFactory.cs

public interface IDbContextFactory<TContext> where TContext : DbContext
{
    DbContext Create();
}

public class MyDbContextFactory : IDbContextFactory<MyDbContext>
{
    public IJwtHelper JwtHelper { get; set; }

    public MyDbContextCreate()
    {
        return new MyDbContext(this.JwtHelper);
    }

    DbContext IDbContextFactory<MyDbContext>.Create()
    {
        throw new NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

工作单元.cs

public class UnitOfWork<TContext> : IUnitOfWork<TContext> where TContext : DbContext
{
    public static Func<TContext> CreateDbContextFunction { get; set; }
    protected readonly DbContext DataContext;

    public UnitOfWork()
    {
        DataContext = CreateDbContextFunction(); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net entity-framework asp.net-core-2.1

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

Android Room DB - 在查询中使用另一个类的静态变量

当我在 DAO 类中编写查询时,我可以使用另一个类(或枚举)中的静态变量吗?如果可以的话请告诉我如何做?

我的意思是这样的:

public enum MessageState {
   NOTHING,
   PENDING,
   SEND
}
Run Code Online (Sandbox Code Playgroud)

在 DAO 类的查询语句中:

@Query("SELECT * FROM message_db WHERE state = :MessageState.PENDING.ordinal()")
Run Code Online (Sandbox Code Playgroud)

android android-room android-jetpack

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

C: if(a&lt;b&lt;c) 做什么?

为什么下面的 if 语句返回 1(true)?

int main() {
    short a = 1;
    short b = 5;
    short c = 4;

    if (a<b<c)
        printf("true \n");
    else
        printf("false \n");

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这显然不一样

if(a<b && b<c)
Run Code Online (Sandbox Code Playgroud)

因为这会返回 false。

谢谢

c

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