小编Har*_*Boy的帖子

更改默认悬停在文本颜色wpf上

我习惯于在我的标签中将鼠标悬停在文字颜色上.但默认文本颜色为黑色.如何修改下面的默认颜色是其他东西,例如白色.

    <Page.Resources>
    <SolidColorBrush x:Key="mouseOverColor" Color="Gold" />
    <Style x:Key="mouseOverStyle" TargetType="Label">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Label">
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Foreground" Value="{StaticResource mouseOverColor}" />
                        </Trigger>
                    </ControlTemplate.Triggers>
                    <ContentPresenter />
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Page.Resources>
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml

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

如何在c ++中正确清理静态类

我需要一个单例类,因为我只需要初始化一些变量.当我崩溃时,我无法清理班级时遇到问题.这是我班级的简化版本:

#include "stdafx.h"
#include <iostream>

class MyClass
{
public:
    MyClass();
    virtual ~MyClass();

    static MyClass& Instance();
    void DoSomething();
};

MyClass::MyClass()
{
    std::cout<<"MyClass constructor"<<std::endl;
    //initialise some stuff here
}

MyClass::~MyClass()
{
    std::cout<<"MyClass destructor"<<std::endl;
    //clean up some stuff here
}

MyClass& MyClass::Instance()
{
    static MyClass _instance;
    return _instance;
}

void MyClass::DoSomething()
{
    std::cout<<"Do something"<<std::endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
    MyClass& myClass = MyClass::Instance();
    myClass.DoSomething();

    delete &myClass;

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

当我调用delete&myClass时,析构函数会被调用,然后它会像这样爆炸:

在此输入图像描述

我已经调查过,我认为我不应该在一个尚未使用new创建的对象上调用delete.它是否正确??

答案是否只是不使用任何删除并让析构函数在超出范围时自动调用(当主要返回时)?

c++ static-members c++11

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

在c ++中创建一个静态初始化类

我希望有一个用于一次性初始化的类,如下所示:

class Initialise
{
public:
    Initialise()
    {
        m_name = "Jimmy";
    }
    ~Initialise(){}

private:
    std::string m_name;
};

class SomeClass
{
    static Initialise staticStuff; // constructor runs once, single instance
};

int main()
{
    SomeClass testl;

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

当我运行上面的命令时,我发现'Initialise'类的构造函数永远不会在调试器中被命中.为什么是这样?

c++ oop static-members

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

将 UNIX 纪元时间转换为 SYSTEMTIME

在我的 C++ Windows 应用程序中,我将 SYSTEMTIME 转换为格式化字符串,如下所示:

    SYSTEMTIME systemTime;
    GetSystemTime(&systemTime);
    char pSystemTime[50];
    sprintf_s(pSystemTime, 50, "%04d%02d%02d%02d%02d%02d%03u\0", systemTime.wYear, systemTime.wMonth,
                                                                              systemTime.wDay, systemTime.wHour,
                                                                              systemTime.wMinute, systemTime.wSecond,
                                                                              systemTime.wMilliseconds);
Run Code Online (Sandbox Code Playgroud)

现在我有一个自 UNIX 纪元以来以毫秒为单位的时间。

long time = 1442524186;  //for example
Run Code Online (Sandbox Code Playgroud)

如何将这么长的纪元时间转换为 SYSTEMTIME 以便我也可以将其格式化为字符串?

c++

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

在类构造函数中初始化成员

有人可以解释为什么我不能在构造函数体中初始化变量,就像我在成员初始化列表中一样.

class MyClass
{
  public:
    MyClass();
    virtual ~MyClass(void);
  private:
    std::string test;
};

MyClass::MyClass()
: test("asdf")  <-- Case 1: This is OK
{
    test("asdf");   <-- Case 2: This is not
}
Run Code Online (Sandbox Code Playgroud)

我问,因为我需要使用第三方类,并通过将某些变量传递到其构造函数来进行初始化.如果我像上面的案例1那样使用它,但在案例2中没有,那就没问题了.

c++

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

使用Transact-SQL更新行条目

我有一个SQL Server 2014数据库Database.Main,其中包含列TypeCode.

我需要修改现有的Transact-SQL脚本以选择所有Type等于的行,MyObject.Main并将其更改Code为整数1000.

我怎样才能在Transact-SQL中执行此操作?

BEGIN TRY
    BEGIN TRAN Update_Table;

    COMMIT;
END TRY
BEGIN CATCH
  print 'Error encountered updating entries'
  print ERROR_MESSAGE()
  rollback;
END CATCH
Run Code Online (Sandbox Code Playgroud)

回答

基于Raul的答案,解决方案是这样的:

BEGIN TRY
    BEGIN TRAN Update_Table;
        UPDATE Database.Main
        SET Code = 1000
        WHERE Type = 'MyObject.Main';
    COMMIT;
END TRY
BEGIN CATCH
  print 'Error encountered updating entries'
  print ERROR_MESSAGE()
  rollback;
END CATCH
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

您必须在 AppCenter 中添加共享方案

我希望为我的 GitLab iOS xCode 项目设置 AppCenter BuildConfiguration。我收到以下错误,提示我必须添加共享方案:

在此输入图像描述

我按照此处的步骤为我的工作区生成方案: https://learn.microsoft.com/en-us/appcenter/build/troubleshooting/ios#no-scheme

最后一步表示:将 .xcscheme 文件添加到源代码管理并推送到远程存储库,以便 App Center 可以访问它。

问题:

每当生成此 .xcscheme 文件时,它位于哪里,因为我似乎找不到它?它应该在哪个文件夹等中?

xcode ios visual-studio-app-center

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

WPF无法将system.drawing.bitmap隐式转换为media.brush

我想在我的WPF应用程序中手动更改按钮的背景.

我有一个图像导入我的资源,我想这样做:

MyButton.Background = MyProject.Properties.Resources.myImage;
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

无法将system.drawing.bitmap隐式转换为media.brush

我怎样才能做到这一点??

c# wpf xaml

0
推荐指数
2
解决办法
7972
查看次数

如何避免strcpy_s缓冲区太小

我需要复制std::string data到char数组中。我的字符串的长度是可变的,但是我的char数组的长度是固定的。

const int SIZE = 5;

char name[SIZE];
std::string data = "1234567890";

strcpy_s(name, 5, data.c_str()); //causes a buffer is too small assertion
strcpy_s(name, 11, data.c_str());//copies fine (length of data plus null)
strcpy_s(name, sizeof(data), data.c_str()); // copies fine
Run Code Online (Sandbox Code Playgroud)

每次如何安全地仅复制阵列的长度?没有获取断言,也没有导致缓冲区溢出。

我应该每次都这样吗?

std::string toCopy = data.substr(0,SIZE-1);
strcpy_s(name, toCopy.c_str());
Run Code Online (Sandbox Code Playgroud)

c c++ char

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

如何将变量传递给std :: async?

我怎样才能将向量传递给异步调用?

std::vector<int> vectorofInts;
vectorofInts.push_back(1);
vectorofInts.push_back(2);
vectorofInts.push_back(3);

std::async([=]
{
    //I want to access the vector in here, how do I pass it in
    std::vector<int>::iterator position = std::find(vectorofInts.begin(), vectorofInts.end(), 2);
    //Do something 
}
Run Code Online (Sandbox Code Playgroud)

c++ c++11 stdasync

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

从C#列表中抓取最后n个项目

我有一个C#List<T>项目.我想从某个索引迭代到项目的结尾List<T>.我可以使用foreach语法执行此操作吗?

 List<T> list = ...

 foreach (var item in ???) 
 {
    ...
 }
Run Code Online (Sandbox Code Playgroud)

或任何其他方法?

例如从List.Count - 50结束(我只想要最后的 50项目)

c#

0
推荐指数
3
解决办法
9066
查看次数

使用as铸造自定义集合失败

我有一个自定义集合如下:(我不会显示该类的所有代码)

public class MyCollection : IList<MyOBject>, ICollection<MyOBject>, IEnumerable<MyOBject>, IEnumerable, IDisposable
{
    //Constructor
    public MyCollection (MyOBject[] shellArray);
    // blah blah
}
Run Code Online (Sandbox Code Playgroud)

我只想要集合中SomeValue = false的条目,我想弄清楚为什么我不能使用as运算符,如下所示:

MyCollection SortCollection(MyCollection collection)
{
    MyCollection test1 = collection.Where(x => (bool)x["SomeValue"].Equals(false)) as MyCollection ; //test1 = null

    var test2 = collection.Where(x => (bool)x["SomeValue"].Equals(false)) as MyCollection ;          //test2 = null

    var test3 = collection.Where(x => (bool)x["SomeValue"].Equals(false)); //test3 is non null and can be used
    return new MyCollection (test3.ToArray());
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能在test1test2中使用代码

c# casting icollection

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