小编Pim*_*mgd的帖子

编译时间常量和引用类型

好的,请考虑以下代码:

    const bool trueOrFalse = false;
    const object constObject = null;

    void Foo()
    {
        if (trueOrFalse)
        {
            int hash = constObject.GetHashCode();
        }

        if (constObject != null)
        {
            int hash = constObject.GetHashCode();
        }
    }
Run Code Online (Sandbox Code Playgroud)

trueOrFalse是一个编译时常量,因此,编译器正确警告int hash = o.GetHashCode();无法访问.

此外,constObject是一个编译时常量,因此编译器再次正确警告,这int hash = o.GetHashCode();o != null永远不可达的true.

那么为什么编译器没有弄清楚:

    if (true)
    {
        int hash = constObject.GetHashCode();
    }
Run Code Online (Sandbox Code Playgroud)

是100%肯定是运行时异常,因此发出编译时错误?我知道这可能是一个愚蠢的角落案例,但编译器似乎非常聪明地推理编译时间常量值类型,因此,我期望它也可以找出这个带有引用类型的小角落情况.

c#

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

在Delphi中,浮点类型的最大值是什么关键字?

注意:此问题已被编辑,因为我的问题变得完全不同.您将What's the keyword for the maximal value for a floating point type?MBo的答案中找到问题的直接答案 - 使用System.Math的常量.

Delphi提供多种浮点值类型.首先是Single,Double和Extended.

上周我查找了关键字的最大浮点值,发现了这个:http://www.delphibasics.co.uk/RTL.asp?Name = Infinity

var
  float1, float2 : single;
begin
  float1 := Infinity;
  float2 := 23;

  ShowMessage('float1 = '+FloatToStr(float1));
  ShowMessage('float2 = '+FloatToStr(float2));
  ShowMessage('float1 - float2 = '+FloatToStr(float1 - float2));
  ShowMessage('-float1 = '+FloatToStr(-float1));
end;
Run Code Online (Sandbox Code Playgroud)

假设输出

float1 = INF
float2 = 23
float1 - float2 = INF
-float1 = -INF
Run Code Online (Sandbox Code Playgroud)

我有一个包含组件的表单.该组件有几个属性.如果我使用属性编辑器Infinity作为浮点属性的值,我得到的错误是它是一个无效的浮点值.同样如此INF.

然后我输入9.9E308MaxValue字段.它变成了INF. …

delphi delphi-xe5

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

YUV 文件格式

有人知道 YUV:4:2:0 文件格式吗?我的意思是如何将视频存储在具有这种格式的文件中(详细说明)。

video yuv

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

JPA @Embeddable

我正在使用@ElementCollection作为自定义对象列表

@ElementCollection
@CollectionTable(name = "choice", joinColumns = @JoinColumn(name = "itemId"))
@OrderColumn(name = "index")
private List<Choice> choices = new ArrayList<Choice>();
Run Code Online (Sandbox Code Playgroud)

我已经创建了这样的Choice类

//@Embeddable
@Table(name = "choice")
@Cacheable(false)
@Audited
public class Choice implements Serializable{
Run Code Online (Sandbox Code Playgroud)

如果我使用@Embeddable注释,我会得到 org.hibernate.MappingException: Type not supported for auditing: org.hibernate.type.ComponentType

我是JPA的新手.有什么我想念的吗?

hibernate jpa-2.0

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

使用对system()的调用而不是编程语言的函数是否有缺点?

我正在用C编程为嵌入式设备创建一些API.这个嵌入式设备运行Linux的变体.我对C不是很熟悉 - 我对shell脚本/ bash更熟悉.

考虑到这一点,当涉及检查目录是否存在或获取磁盘使用时,我发现只是调用systempopen执行我的命令更容易,然后解析输出.作为开发人员,我的速度更快.

制作这些systempopen调用是否有缺点,而不是找到如何在C中执行这些操作,然后使用C的函数?

c bash system-calls

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

如何在 liquibase 的小数列定义中包含精度和小数位数部分?

假设我想创建一些具有 10 个精度数字和 2 个小数数字的数字,例如0123456789.12. 有没有办法定义这样的类型并保持列定义数据库不可知?例如,定义一个由 liquibase 自动转换为DECIMAL(10, 2)Mysql 和NUMERIC(10, 2)postgres(或任何其他数据库)的类型。

mysql sql database postgresql liquibase

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

OR运算符的序列

我有以下OR运算符,现在当前如果c为null,将返回Error视图,并且在第二次检查时不会引发空异常(!c.ManagedBy ...); 但这只会在编译器在(!c.Ismanaged ..)检查之前执行(c == null)检查时发生.

Book c = elearningrepository.GetBook(id);

if ((c == null) || (!c.IsManagedBy(User.Identity.Name)))
{
    return View("Error");
}
Run Code Online (Sandbox Code Playgroud)

所以我可以保证编译器将始终首先执行c == null检查,或者最好将上面的检查分成两个单独的If语句来显式强制执行序列.BR

c# asp.net-mvc-3

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

在UIAlertController中禁用视差iOS

我正在开发的应用程序仅支持纵向模式.但是,在iOS8中,现在已弃用的UIAlertView可以进入横向并显示其他一些小问题.为了解决这个问题,我决定UIAlertController尝试一下.它有效,但我有一个新问题仍然有点烦人.警报不再进入景观,但确实以视差运动为特色.我在UIAlertController视图中添加了一个标签和一个图像,但那些不具有视差的东西,这意味着当用户移动手机时它看起来很奇怪.

我正在寻找两种选择,但我找不到如何做其中任何一种.
第一个解决方案是禁用视差,看看我们如何在应用程序的任何地方不支持它.
第二种解决方案是将视差支持添加到标签和图像.
无论如何,这是一段代码:

UIAlertController *welcomeAlertController = [UIAlertController
                                              alertControllerWithTitle:[NSString stringWithFormat:NSLocalizedString(@"Would you like to send %@ a message?", @"This message is displayed after adding a new message receiver. The %@ is the name of the receiver."), self.receiver.name]
                                              message:@"\n\n\n\n\n\n\n\n"
                                              preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction *cancelAction = [UIAlertAction
                               actionWithTitle:NSLocalizedString(@"Skip", @"Skip: meaning user can skip a certain step.")
                               style:UIAlertActionStyleCancel
                               handler:^(UIAlertAction *action)
                               {
                                   [self cancelButtonPressed];
                               }];

UIAlertAction *okAction = [UIAlertAction
                           actionWithTitle:NSLocalizedString(@"Send", @"Send: meaning user can send information to somewhere.")
                           style:UIAlertActionStyleDefault
                           handler:^(UIAlertAction …
Run Code Online (Sandbox Code Playgroud)

ios parallax ios8 uialertcontroller

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

是否为所需的所有本机方法提供了实现?

无法通过快速谷歌搜索"java未实现的本机方法"和问题标题找到这个.有几个消息来源说你必须提供一个实现,然后他们继续调用他们实现的功能,所以他们需要一个单独的实现是合乎逻辑的.

我的问题有一个略有不同的背景.

我有一个Java库,我想在Windows,Unix和Android上使用它.我有JNI用于实现本机库.对于android,这个库带有专门的日志记录.此功能仅适用于android,而不适用于windows/unix.public static native void log()如果我不调用日志函数,我可以声明一个函数而不提供实现吗?

这将允许我为windows,unix和android提供相同的库.无论如何,没有人会在windows/unix上调用android日志功能.


TL; DR:我有一个包含方法的类public static native void a()public static native void b().如果我打算a()在平台A,B和C上调用,并打算b()只在平台C上调用,我是否必须b()在平台A和B上提供实现?

java java-native-interface android

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

随机时间产生的节点在一个SKAction序列中结合waitForDuration:withRange和runBlock :.

我正在使用SpriteKit进行游戏,我在屏幕顶部产生节点并且下降.但是,我希望这些节点以0.1到3秒之间的随机时间间隔生成.例如,第一个节点在1.3秒内产生,下一个在1.8中产生,然后是2.5,然后是0.8,依此类推.我不知道如何利用waitForDuration函数来做到这一点.我目前拥有的代码是:

let wait = SKAction.waitForDuration(3, withRange: 2)
let spawn = SKAction.runBlock { addTears()
}

let sequence = SKAction.sequence([wait, spawn])
self.runAction(SKAction.repeatActionForever(spawn))
Run Code Online (Sandbox Code Playgroud)

当我尝试运行它时,此代码会冻结我的游戏.我删除了addTears()并放了一个日志,日志上有一个无限循环.我需要知道如何摆脱这个.

我的addTears()函数的代码是:

func addTears() {
    let Tears = SKSpriteNode (imageNamed: "Tear")
    Tears.position = CGPointMake(Drake1.position.x, Drake1.position.y - 2)
    Tears.zPosition = 3
    addChild(Tears)

//gravity
Tears.physicsBody = SKPhysicsBody (circleOfRadius: 150)
Tears.physicsBody?.affectedByGravity = true

//contact
Tears.physicsBody = SKPhysicsBody (circleOfRadius: Tears.size.width/150)
Tears.physicsBody!.categoryBitMask = contactType.Tear.rawValue
Tears.physicsBody!.contactTestBitMask = contactType.Bucket.rawValue
}
Run Code Online (Sandbox Code Playgroud)

sprite-kit skaction skspritenode swift

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

如何使虚幻引擎4全屏(Windows包)

我对虚幻引擎 4 非常陌生,我需要一些帮助,我在互联网上找不到答案,所以我希望这里有人可以提供帮助。

当我打开游戏时进入Package项目(Windows)时,如何使其始终默认全屏?所以当我打开游戏时它将是全屏的。

有我可以用来做到这一点的蓝图吗?如果没有,您必须对其进行编程,您能否告诉我必须放置代码或其他内容的确切位置,因为就像我说的那样。我是个新手,大麦知道这个界面以及如何使用它。(我来自Unity)

windows fullscreen package unreal-engine4 unreal-blueprint

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

带有D3DX9的C++ - 内存大小以10 MB /秒的速度增长 - 为什么?

我正在研究3D引擎作为学校项目.我已经安装了虚拟泄漏检测器来摆脱内存泄漏(并且它工作,因为我不再获得任何这些转储).最近,我不小心让我的应用程序运行了5分钟...而我的电脑变得很慢.我通过注释掉行等来跟踪这个问题,但是我无法找到为什么在关闭应用程序之前C++不会释放我已清除的内存.

问题:"内部"内存泄漏,看起来C++只是在应用程序关闭后才删除内容

代码: 我的渲染代码(在pastebin Yz79Ck0b)

注意:我知道我不应该每次创建一个新的Mesh,但这不应该导致这个问题,对吧?我的IDE是Visual Studio 2008,我正在使用WIN32项目.当我取出纹理和模型时,我有0字节的内存增长.

c++ directx 3d

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

JAVA REGEX - 用"?"拆分字符串 作为分隔符

我想用"?"分割一个字符串 作为分隔符.

str.split("?")[0] 失败.

java regex

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