如何确定两个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#方法的重载版本:
void Method( TypeA a ) { }
void Method( TypeB b ) { }
Run Code Online (Sandbox Code Playgroud)
我用以下方法调用该方法:
Method( null );
Run Code Online (Sandbox Code Playgroud)
调用该方法的哪个重载?我该怎么做才能确保调用特定的重载?
在具有16位颜色深度的显示器上(包括设置为16位颜色的远程桌面会话),Windows窗体应用程序使用指定标题栏图标(Form.Icon)的低颜色深度版本.但是,WPF应用程序和Windows资源管理器使用24位颜色深度(如果存在).
我第一次在我正在研究的Windows窗体应用程序中看到这个.我使用的图标定义了4位,24位和32位变体.在16位显示器上,Windows Forms在标题栏中使用了丑陋的4位版本而不是漂亮的24位或32位版本.
为了测试和说明行为,我创建了一个测试图标,每种尺寸和颜色格式都有明显不同的设计.我包括4位,8位,24位和32位变体.
以下是32位和16位显示的结果:
Windows资源管理器:

WPF申请:

Windows窗体应用程序:

Windows资源管理器:

WPF申请:

Windows窗体应用程序:

在16位显示器上,Windows资源管理器和WPF使用24位格式,但Windows窗体不使用.在这种情况下,它使用8位格式.我的真实应用程序图标没有8位变体(但我现在要制作一个!),因此Windows Forms使用了4位变体.
如何让我的Windows窗体应用程序在16位显示器的标题栏中显示24位版本的图标?
不是一个严格的编程问题,但我当时编程并找不到答案,所以我想,"嘿,我会试试StackOverflow!"
所以我通过VPN通过远程桌面连接连接到我的Windows XP工作PC.在命令窗口(在远程PC上),我愚蠢地输入ipconfig /release.在我理解之前一瞬间,我点击了Enter.D'哦!
所以现在怎么办?直到星期一早上我到办公室才流水吗?任何方式远程使我的办公室PC获得一个新的IP地址?
在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)
做color1和color2代表相同的颜色?或者range参数是否以某种方式缩放组件,使这两种颜色不同?(如果是后者,range对应于标准CIELAB坐标缩放的值是多少?
选项2:可能它会剪切组件值
鉴于上面定义的两个空格,请说我创建以下颜色:
CGFloat components[] = …Run Code Online (Sandbox Code Playgroud) 我的公司开始进入iPhone开发.我们希望将我们的iPhone业务与其他业务隔离开来,因此在App Store中,我们希望以不同的名称为人所知.例如,虽然我们的公司可能是合法的公司,有限责任公司,但我们希望我们在App Store上的应用程序看起来来自不同的公司名称,例如ReallyCoolApps,LLC,这对于Company,LLC来说只是一个dba.
我正处于开发者计划注册的中间,它要求我提供我的公司名称,网站等.此时,我是否需要输入我们希望在App Store中显示的名称(例如ReallyCoolApps) ,LLC),或者我可以在这里输入我们真实的公司名称(例如Company,LLC)并选择一个不同的名称,以便在我们准备分发时出现?
我们还没有提出App Store名称.我想继续进行注册,这样我就可以开始在实际设备上进行测试,并等到稍后再提出一个名字.我想在继续之前确保这是可能的.
谢谢!