小编Tra*_*rap的帖子

为什么1.0f + 0.0000000171785715f会返回1f?

经过一个小时的尝试在我的代码中找到一个错误,我终于找到了原因.我试图在1f添加一个非常小的浮点数,但没有发生任何事情.在试图弄清楚为什么我发现将小浮点数加到0f时效果很好.

为什么会这样?这与"数量级"有关吗?这个问题有解决方法吗?

提前致谢.

编辑:

目前不能选择更改为双精度或小数.

.net c# floating-point precision

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

如何正确命名一个代表1 - n值的变量?

它显然取决于你使用它们的上下文,但我想知道是否有一种普遍接受的方法来命名这些变量,或者至少在数学上下文中.

我经常看到:

float k         = someValue;
float oneMinusK = 1 - k;
Run Code Online (Sandbox Code Playgroud)

......这对我来说似乎是无意义的描述.

请注意,我不是在询问如何命名变量,而是在这种情况下如何命名.您使用它们的示例和上下文将非常感激,

谢谢.

variables naming

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

哪个是比较两个非整数的整数部分的最佳方法?

我需要比较两个双精度的整数部分的不等式,我现在正在这样做:

int iA = (int)dA;
int iB = (int)dB;

if( iA != iB )
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有比这更好的方法.

谢谢.

如果我使用Math.Truncate()而不是使用强制转换为int,那么将两个得到的双精度值进行比较仍然是准确的吗?

关于匈牙利符号评论:

我自己从不使用HN,至少不像大多数人那样.但这是一种罕见的情况,其中变量的语义与其类型直接相关.我本可以选择另一种语法,如A_As_Integer和B_As_NonInteger,但那会有什么区别呢?

.net double integer compare

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

如何在WPF网格列中定位元素?

假设我想在Grid控件的第3列中的坐标x = 20,y = 5处定位元素.我该怎么做呢?我是否需要向该列添加Canvas面板,然后将控件添加到该列中?

wpf grid wpf-positioning

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

IDisisposable对象是否只需创建和处理一次?

我正在使用一个巨大的二叉树结构,其节点可能会也可能不会使用非托管资源.其中一些资源可能占用大量内存,但一次只能使用其中一些内存.树的初始状态可以被视为"休眠".

每当访问节点时,该特定节点及其子节点将"唤醒"并懒洋洋地获取其分配的资源.同样,访问树中的不同分支将使当前活动的分支进入休眠状态,从而释放其资源.这意味着任何给定节点都可以在任何给定时间被唤醒并一次又一次地进入休眠状态.

我目前正在利用IDisposable接口来实现这一目标.它非常有用,因为在很多情况下我需要创建将在本地使用的小分支,并且'using'关键字非常方便,确保不会意外地打开资源.

我是否可以在没有真正处理但有点睡觉的对象上实现IDisposable?

提前致谢.

编辑:感谢所有聪明的答案.我喜欢处理资源访问而不是资源本身的想法.现在我正在为负责清理的功能寻找更好的名称.(除了Release()或Sleep()之外的任何想法?再次感谢.

.net idisposable

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


如何强制我的WPF主窗口在XP机器上显示Vista?

我正在开发一个WPF应用程序,我想知道主窗口是否有可能具有Vista外观.一些应用程序,如MS Live Messenger和谷歌的Chrome已经做到了这一点.

有任何想法吗?

谢谢.

.net wpf user-interface windows-vista

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

通过添加新接口而不是扩展现有接口来添加功能

我需要为现有界面添加一些新功能.项目中已经有很多类实现它,但其中一些不需要新的功能集.我的第一种方法是将新功能添加到现有接口并在任何地方实现,在适用的地方添加无操作功能等.但现在我想知道是否有更好的方法来做到这一点.

举个例子:

// Everything able to produce a waveform must implement this interface.
interface IWaveformResource
{
    int Collect( Stream _target, int _sampleCount );
}

// A waveform stored in a file
class FileWaveform : IWaveformResource
{
    public int Collect( Stream _target, int _sampleCount )
    {
        // ...
    }
}

// A sine waveform.
class SineWaveform : IWaveformResource
{
    public int Collect( Stream _target, int _sampleCount )
    {
        // ...
    }
}

// Added feature, we want to be able to …
Run Code Online (Sandbox Code Playgroud)

.net c# interface

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

如何根据命名空间正确命名类?

人们经常可以看到类名带有对它们所属的命名空间的引用.其中一个最流行的例子是.NET'Xml'命名空间,其中定义的每个类都以'Xml'标记为前缀.

这对我来说似乎总是多余的,但最近我意识到在某些情况下它可能是有用的......但仍然是多余的.

我想知道人们如何处理这个问题.

谢谢.

.net namespaces class naming-conventions

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