在声明上初始化类成员变量是否更好?
private List<Thing> _things = new List<Thing>();
private int _arb = 99;
Run Code Online (Sandbox Code Playgroud)
还是在默认构造函数中?
private List<Thing> _things;
private int _arb;
public TheClass()
{
_things = new List<Thing>();
_arb = 99;
}
Run Code Online (Sandbox Code Playgroud)
这仅仅是一种风格问题,还是存在性能权衡,这种或那种方式?
我们编写了一个小型Windows类库,它实现了一些标准类型的扩展方法(最初是字符串).我将它放在一个库中,这样我们的任何项目都可以通过简单地引用它并使用XXX.Extensions添加它来使用它.
当我们想在Silverlight中使用其中一些方法时,出现了一个问题.尽管所有代码都是兼容的,但是在Silverlight中无法引用Windows库,因此我们创建了一个Silverlight库,该库具有指向相同类文件的链接,并将编译器指令放入类中以允许使用不同的声明和命名空间.这个工作正常,直到今天我向Windows扩展库添加了一个新类,并意识到我必须记住将类链接到Silverlight库中.
这并不理想,我想知道是否有人可能有更好的方法在Windows和Silverlight项目之间共享扩展方法和其他帮助程序代码.
我想使用Powershell编写一些实用程序,利用我们自己的.NET组件来处理实际工作.这取代了编写一个小型控制台应用程序来将调用绑定在一起.我的问题是,我会找到一个很好的文档来源或教程材料,以帮助我快速跟踪这个?
如何列出出现(按照.git/config)跟踪不再存在的远程分支的任何本地分支?在这种情况下,远程分支机构在GitHub上,但我怀疑它们的位置没有相关性.
例如:
a,b,c和d.a正在跟踪origin/a并c正在跟踪origin/c.b并且d不跟踪远程分支.origin/a已被合并回主服务器并在存储库清理期间被删除; 我不再需要保留本地分支a.a签出到工作树,则运行git fetch或git pull导致错误Your configuration specifies to merge with the ref 'a' from the remote, but no such ref was fetched.如何生成仅包含a其他本地分支的列表,这些分支似乎跟踪不再存在的远程分支?
我想识别这些,以便我可以删除我不再需要的过时的本地分支.
该列表不应包括本地分支b或d不跟踪远程分支,也不c应该是跟踪origin/c,这仍然存在.
有谁知道如何从Visual Studio调试在Google Chrome中运行的Silverlight 2应用?即使确保Chrome是调试浏览器,断点仍然没有被击中.
在Intellisense自动完成的指导下,我总是分配这样的事件处理程序.
RangeSelector.RangeChanged += new EventHandler(RangeSelector_RangeChanged);
Run Code Online (Sandbox Code Playgroud)
我最近注意到我的一位同事就是这样做的.
RangeSelector.RangeChanged += RangeSelector_RangeChanged;
Run Code Online (Sandbox Code Playgroud)
这两种方法在语法上都是正确的,编译和行为符合预期.
这些方法的不同之处,好处或缺点是什么.它们是否会产生相同的IL代码,或者是否需要注意一些微妙的差异?
我们有一个动态的语言系统,不使用传统的资源文件; 通过语言管理器库从数据库中获取资源.基于遗留(VB6)解决方案,它根据控件标记属性中的资源名称进行语言控制.在页面初始化之后,我们启动了一个方法,该方法接受LayoutRoot并递归它的子项应用从控件有一个标记的字符串中查找的字符串.这被证明是笨拙的,递归例程变成了一个怪物,以迎合不同控件的微妙之处,我想改为使用数据绑定来代替应用字符串.
我意识到我可以为每个控件声明要绑定的属性,但这将涉及大量代码,我希望有更好的方法.有没有办法绑定到方法,传递参数.我设想了这样的方法.
public string GetResource(string resourceName)
{
string resource = <fetch resource from language manager>;
if (String.IsNullOrEmpty(resource))
{
return resourceName;
}
else
{
return resource;
}
}
Run Code Online (Sandbox Code Playgroud)
我们的应用程序中已经有一个静态方法用于此检索,该方法具有以下签名.
public static Resource(string resourceName, string defaultValue)
Run Code Online (Sandbox Code Playgroud)
能够直接使用它会很棒.
为这个问题的论文性质道歉.我一直在努力解决这个问题,并试图用我具体的问题总结我对所需内容的理解.
在这个有关从欧洲DTCO公司卡读取数据的问题中,我得到的建议涉及到下面屏幕截图中的算法(来自本文件的附录11 ),但我不清楚如何执行这两个突出显示的步骤.
我看到Sign是包含证书的数组的一部分,但用公钥打开它意味着什么?我可以通过从卡中读取CA_Certificate并使用CAR 发出管理安全环境 APDU (参见算法的第一步)来成功执行该步骤.但是通过这种方式选择了公钥,我在开放的Sign步骤中使用了哪些公钥.MSE选择一个,但我没有; 我只有来自ERCA的欧洲公钥,但是我在卡中选择了相同的密钥吗?我没有任何私钥,但我需要它们.
在检查Hash(C')= H'的步骤中,我应该如何计算哈希?进行加密/解密/散列似乎有很多不同的方式(格式正确吗?)我很困惑.

我真正需要能够读取我需要的数据是使用EXTERNAL AUTHENTICATE进行身份验证,紧接在返回8字节质询的GET CHALLENGE之后.我认为我需要用它来计算EXTERNAL AUTHENTICATE的密码.我在下面找到了示例代码(请参阅完整帖子),虽然它看起来像是某种类似C语言的脚本语言(我正在使用C#),但对于不同类型的智能卡,它似乎与我必须使用的非常类似.
//
// Authenticate against CardOS card
//
var card = new Card(_scsh3.reader);
var crypto = new Crypto();
var key = new Key();
key.setComponent(Key.DES,
new ByteString("01010101010101010101010101010101", HEX));
// Get challenge
var challenge = card.sendApdu(0x00, 0x84, 0x00, 0x00, 8, [0x9000]);
// Crypto.DES_MAC_EMV is a …Run Code Online (Sandbox Code Playgroud) 我们有一个语言机制,在加载时通过我们的XAML页面进行递归,检查每个元素的Tag属性,并使用其值来检索要应用于元素的字符串资源.它目前不支持工具提示,我们必须在每个页面上都有特定的代码才能将语言资源应用于它们.我正在尝试将此功能添加到我们的递归机制中.
所以我在树中FrameworkElement递归,对于每个元素,我想知道它是否有一个ToolTipService,如果是,那么ToolTipService是否有一个ToolTip元素.如果是的话,我想要检索Tag属性(如果有的话),并使用我使用标记查找的值设置Content属性.我的问题是我无法弄清楚如何确定是否有工具提示和getaccess.
以下是显示元素的示例,在本例中为Image.如果我在树中递归并且当前元素是图像,我该如何进入工具提示?
<Image x:Name="DateRangeSelectorButton" Grid.Column="0" Source="Images/OvalClock.png" Margin="2,0,2,0" Cursor="Hand">
<ToolTipService.ToolTip>
<ToolTip Tag="dttlDateRangeSelectorButtonTooltip"/>
</ToolTipService.ToolTip>
</Image>
Run Code Online (Sandbox Code Playgroud) c# ×5
silverlight ×4
components ×1
constructor ×1
cryptography ×1
data-binding ×1
debugging ×1
declaration ×1
events ×1
fonts ×1
git ×1
powershell ×1
security ×1
sharing ×1
smartcard ×1
testing ×1
tooltip ×1
windows ×1