小编SWB*_*SWB的帖子

如何确定两个"ref"变量是否引用相同的变量,即使是null?

如何确定两个ref变量是否引用同一个变量 - 即使两个变量都包含null

例:

public static void Main( string[] args )
{
    object a = null;
    object b = null;

    Console.WriteLine( AreSame( ref a, ref b ) ); // Should print False
    Console.WriteLine( AreSame( ref a, ref a ) ); // Should print True
}

static bool AreSame<T1, T2>( ref T1 a, ref T2 b )
{
    // ?????
}
Run Code Online (Sandbox Code Playgroud)

我尝试过的东西不起作用:

  • return object.ReferenceEquals( a, b ); (在两个测试用例中都返回true)
  • unsafe { return &a == &b; } (不能获取托管对象的地址)

c#

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

C#:将null传递给重载方法 - 调用哪个方法?

假设我有两个C#方法的重载版本:

void Method( TypeA a ) { }
void Method( TypeB b ) { }
Run Code Online (Sandbox Code Playgroud)

我用以下方法调用该方法:

Method( null );
Run Code Online (Sandbox Code Playgroud)

调用该方法的哪个重载?我该怎么做才能确保调用特定的重载?

c# null overloading

34
推荐指数
3
解决办法
6360
查看次数

WinForms应用程序在16位显示器上使用低质量标题栏图标

在具有16位颜色深度的显示器上(包括设置为16位颜色的远程桌面会话),Windows窗体应用程序使用指定标题栏图标(Form.Icon)的低颜色深度版本.但是,WPF应用程序和Windows资源管理器使用24位颜色深度(如果存在).

我第一次在我正在研究的Windows窗体应用程序中看到这个.我使用的图标定义了4位,24位和32位变体.在16位显示器上,Windows Forms在标题栏中使用了丑陋的4位版本而不是漂亮的24位或32位版本.

为了测试和说明行为,我创建了一个测试图标,每种尺寸和颜色格式都有明显不同的设计.我包括4位,8位,24位和32位变体.

以下是32位和16位显示的结果:

在32位显示器上,一切都很好:

Windows资源管理器:

Windows资源管理器,32位显示

WPF申请:

WPF应用程序,32位显示

Windows窗体应用程序:

Windows窗体应用程序,32位显示

在16位显示器上,Windows窗体显示比WPF或Windows资源管理器更低颜色深度的图标变体:

Windows资源管理器:

Windows资源管理器,16位显示

WPF申请:

WPF应用程序,16位显示

Windows窗体应用程序:

Windows窗体应用程序,16位显示

在16位显示器上,Windows资源管理器和WPF使用24位格式,但Windows窗体不使用.在这种情况下,它使用8位格式.我的真实应用程序图标没有8位变体(但我现在要制作一个!),因此Windows Forms使用了4位变体.

如何让我的Windows窗体应用程序在16位显示器的标题栏中显示24位版本的图标?

.net icons color-depth winforms

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

从远程PC上的ipconfig/release恢复

不是一个严格的编程问题,但我当时编程并找不到答案,所以我想,"嘿,我会试试StackOverflow!"

所以我通过VPN通过远程桌面连接连接到我的Windows XP工作PC.在命令窗口(在远程PC上),我愚蠢地输入ipconfig /release.在我理解之前一瞬间,我点击了Enter.D'哦!

所以现在怎么办?直到星期一早上我到办公室才流水吗?任何方式远程使我的办公室PC获得一个新的IP地址?

remote-desktop dhcp ipconfig

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

Quartz 2D:CGColorSpaceCreateLab:范围参数的用途?

在Quartz 2D中,该CGColorSpaceCreateLab()函数采用range如下定义的参数:

CGFloat范围[4]: 4个数字的数组,用于指定颜色空间的a*和b*分量的有效值范围.a*组件表示从绿色到红色的值,b*组件表示从蓝色到黄色的值.

问题是,这个参数实际上做了什么?

我可以想到至少三种可能的情况.

选项1:可能会缩放组件值

假设我有两个不同范围的颜色空间:

CGFloat range1[] = {  -10,  10,  -10,  10 };
CGFloat range2[] = { -100, 100, -100, 100 };
CGColorSpaceRef space1 = CGColorSpaceCreateLab(whitePoint, blackPoint, range1);
CGColorSpaceRef space2 = CGColorSpaceCreateLab(whitePoint, blackPoint, range2);
Run Code Online (Sandbox Code Playgroud)

我创建具有相同组件值的颜色,并在每个空间的指定范围内:

CGFloat components[] = { 50, 10, 10, 1 };
CGColorRef color1 = CGColorCreate(space1, components);
CGColorRef color2 = CGColorCreate(space2, components);
Run Code Online (Sandbox Code Playgroud)

color1color2代表相同的颜色?或者range参数是否以某种方式缩放组件,使这两种颜色不同?(如果是后者,range对应于标准CIELAB坐标缩放的值是多少?

选项2:可能它会剪切组件值

鉴于上面定义的两个空格,请说我创建以下颜色:

CGFloat components[] = …
Run Code Online (Sandbox Code Playgroud)

core-graphics colors quartz-graphics

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

使用不同的公司名称进行iPhone应用程序分发?

我的公司开始进入iPhone开发.我们希望将我们的iPhone业务与其他业务隔离开来,因此在App Store中,我们希望以不同的名称为人所知.例如,虽然我们的公司可能是合法的公司,有限责任公司,但我们希望我们在App Store上的应用程序看起来来自不同的公司名称,例如ReallyCoolApps,LLC,这对于Company,LLC来说只是一个dba.

我正处于开发者计划注册的中间,它要求我提供我的公司名称,网站等.此时,我是否需要输入我们希望在App Store中显示的名称(例如ReallyCoolApps) ,LLC),或者我可以在这里输入我们真实的公司名称(例如Company,LLC)并选择一个不同的名称,以便在我们准备分发时出现?

我们还没有提出App Store名称.我想继续进行注册,这样我就可以开始在实际设备上进行测试,并等到稍后再提出一个名字.我想在继续之前确保这是可能的.

谢谢!

iphone app-store

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