小编Tom*_*Tom的帖子

为什么 C# System.Decimal(十进制)“浪费”位?

正如官方文档中所写,128 位的System.Decimal填充如下:

返回值是一个由 32 位有符号整数组成的四元素数组。

返回数组的第一个、第二个和第三个元素包含 96 位整数的低、中和高 32 位。

返回数组的第四个元素包含比例因子和符号。它由以下部分组成:

位 0 到 15,即较低的字,未使用且必须为零。

位 16 到 23 必须包含一个介于 0 到 28 之间的指数,表示 10 的幂除以整数。

位 24 到 30 未使用且必须为零。

第 31 位包含符号:0 表示正,1 表示负。

考虑到这一点,人们可以看到有些位被“浪费”或未使用。

为什么不是例如 120 位整数、7 位指数和 1 位符号。

十进制可能有一个很好的理由。这个问题想知道这个决定背后的原因。

c# decimal internals cpu-architecture data-structures

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

runnable jar(通过Eclipse)是否包含跟踪信息?

假设我在Eclipse中编写Java代码,然后将其保存为可运行的.jar文件.代码是100%自编的,因此不会从其他来源导入.

.jar文件(文件头,...)中的任何内容是否包含有关我的PC或Eclipse版本的私有数据?

java eclipse anonymity

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

多次调用MakeGenericType(...)每次都会创建一个新类型吗?

我有一个Entity Framework Code First模型,我为此创建了一个静态泛型类,它有一个搜索方法,可以为列表中的每个项调用.承认这是我的头脑,我认为使类静态可以提高代码清晰度甚至性能,因为不必在许多不同的地方创建实例.所有这一切的目标是自动化用户可以搜索,导出哪些属性.

主要问题是:如果为具有引用类型属性的每个项(可能是1000个)调用MakeGenericType(...),那么该引用类型属性的泛型类型是一次生成并保存在某处或生成1000次?

指出任何其他性能犯罪或代码味道是值得赞赏的.

public static class SearchUserVisibleProperties<T>
{
    private static List<PropertyInfo> userVisibleProperties { get; set; }

    static SearchUserVisibleProperties()
    {
        userVisibleProperties = typeof(T).GetProperties().Where(prop => Attribute.IsDefined(prop, typeof(UserVisibleAttribute))).ToList();
    }

    public static bool search(T item, string searchString)
    {
        foreach (PropertyInfo pInfo in userVisibleProperties)
        {
            object value = pInfo.GetValue(item);
            if (value == null)
            {
                continue;
            }
            if (pInfo.PropertyType == typeof(string) || pInfo.PropertyType.IsValueType)
            {
                ...unrelevant string matching code...
            }
            else if ((bool)typeof(SearchUserVisibleProperties<>).MakeGenericType(new Type[] { value.GetType() }).InvokeMember(nameof(search), BindingFlags.InvokeMethod, null, null, new object[] { value, …
Run Code Online (Sandbox Code Playgroud)

c# generics system.reflection ef-code-first

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

Linq .Where(type = typeof(xxx))比较总是假的

我正在尝试在课堂上分配static List<PropertyInfo>所有DbSet属性Entities.

但是,当代码运行时,List为空,因为.Where(x => x.PropertyType == typeof(DbSet)) 始终返回false.

我试过多种变化的.Where(...)方法类似typeof(DbSet<>),Equals(...),.UnderlyingSystemType等,但没有工作.

为什么.Where(...)总是在我的情况下返回false?

我的代码:

public partial class Entities : DbContext
{
    //constructor is omitted

    public static List<PropertyInfo> info = typeof(Entities).getProperties().Where(x => x.PropertyType == typeof(DbSet)).ToList();

    public virtual DbSet<NotRelevant> NotRelevant { get; set; }
    //further DbSet<XXXX> properties are omitted....
}
Run Code Online (Sandbox Code Playgroud)

c# linq ef-code-first

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

java抽象直接图像

可能重复:
使用Graphics2D覆盖BufferedImage上的文本并返回BufferedImage

我的问题是如何永久地将一个字符串绘制到图像.

当我绘制字符串然后刷新图像时,字符串在显示屏上消失.

java swing image

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