问题列表 - 第46470页

从Expression <Func <T >>缓存编译

我有一个用于检查方法参数的类,您可以在表单中调用它:

public void SomeMethod(string anArg)
{
    Ensure.ArgumentNotNull(() => anArg);
}
Run Code Online (Sandbox Code Playgroud)

如果参数为null,则ArgumentNullException抛出具有该属性名称的参数.这样做是这样的:

public static void ArgumentNotNull<T>(Expression<Func<T>> expression) where T : class 
{
    var value = expression.Compile()();
    if (value == null)
    {
        throw new ArgumentNullException(expression.GetMemberName());
    }
}
Run Code Online (Sandbox Code Playgroud)

GetMemberName我写的扩展方法在哪里.

我遇到的问题是对Compile的调用非常慢,所以我想缓存结果,但我似乎无法想出一个足够独特的缓存密钥以防止缓存冲突,但不是那么独特,缓存变得无效.

到目前为止,我的最大努力是:

internal static class ExpressionCache<T>
{
    private static readonly Dictionary<string, Func<T>> Cache = new Dictionary<string, Func<T>>();

    public static Func<T> CachedCompile(Expression<Func<T>> targetSelector)
    {
        Func<T> cachedFunc;
        var cacheKey = targetSelector + targetSelector.Body.ToString();

        if (!Cache.TryGetValue(cacheKey, out cachedFunc))
        {
            cachedFunc = targetSelector.Compile();
            Cache[cacheKey] = …
Run Code Online (Sandbox Code Playgroud)

c# caching expression

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

如何清除堆栈历史记录中的特定活动?

假设我有一个包含名为A,B,C,D的活动的应用程序.现在,考虑A已经作为根活动启动而B已经从A启动并且C已经从B启动并且D已经从C启动.现在我在活动D中有一个名为"删除"的按钮.如果假设,我按下活动D中的"删除"按钮,然后应从历史堆栈中删除活动B和活动C. 在活动D中按回键应显示活动A而不是C.我不知道如何实现这一点.任何人都可以帮我解决这个问题吗?

android

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

如何使一个聪明的变量在{literal} {/ literal}下工作

我有以下代码使用smarty模板引擎

在php文件中:

$smarty-&gt;assign('SITE_URL', 'http://localhost/mis/');
Run Code Online (Sandbox Code Playgroud)

在tpl文件中:

  {literal}
  <script type="text/javascript" src="{$SITE_URL}lightbox/js/prototype.js"></script>
  <script type="text/javascript" src="{$SITE_URL}lightbox/js/scriptaculous.js?load=effects,builder"></script>;
  <script type="text/javascript" src="{$SITE_URL}lightbox/js/lightbox.js"></script>
{/literal}
Run Code Online (Sandbox Code Playgroud)

我希望代码在html视图中呈现如下所示

   <script type="text/javascript" src="http://localhost/mis/lightbox/js/prototype.js"></script>
    <script type="text/javascript" src="http://localhost/mis/lightbox/js/scriptaculous.js?load=effects,builder"></script>
    <script type="text/javascript" src="http://localhost/mis/lightbox/js/lightbox.js"></script>
Run Code Online (Sandbox Code Playgroud)

请帮我解决一下这个.

php smarty

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

我何时应该使用SHA-1,何时应该使用SHA-2?

在我的c#应用程序中,我正在使用RSA签名文件,然后由上传的人上传到我公司的数据库中,在这里我必须选择SHA-1或SHA-2来计算哈希值.
与编程中的任何其他组件一样,我知道必须有一个"在这里使用"和"在那里使用"这两个组件.
那么,什么时候?那时呢?

编辑:
我的问题是:性能有什么不同?而不是关于安全性,因为我已经知道SHA-2比SHA-1更安全.
在此链接中,不同类型的SHA-2之间的比较注意何时使用SHA-512以及何时不使用SHA-512.我需要一个关于SHA-1和SHA-2的类似论点.

c# security rsa sha digital-signature

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

c#检查打印机状态

在我的应用程序(Windows 7,VS2010)中,我必须在成功打印图像后减少信用计数器.无论如何,在开始整个过程​​之前,我想了解打印机状态,以便在纸张,卡纸等方面提醒用户.现在,环顾四周我发现了几个使用Windows WMI的例子,但是......从来没有用过.例如,使用THIS代码段,如果我取出纸张,打开封面,打印机状态也随时可用...关闭打印机.

现在打印机状态总是很好,我正在办公室测试在家里舒适关闭的打印机.让我用炸药引爆设备以获得打印机错误状态?

这是我用过的代码

ManagementObjectCollection MgmtCollection;
ManagementObjectSearcher MgmtSearcher;

//Perform the search for printers and return the listing as a collection
MgmtSearcher = new ManagementObjectSearcher("Select * from Win32_Printer");
MgmtCollection = MgmtSearcher.Get();

foreach (ManagementObject objWMI in MgmtCollection)
{

    string name = objWMI["Name"].ToString().ToLower();

    if (name.Equals(printerName.ToLower()))
    {

        int state = Int32.Parse(objWMI["ExtendedPrinterStatus"].ToString());
        if ((state == 1) || //Other
        (state == 2) || //Unknown
        (state == 7) || //Offline
        (state == 9) || //error
        (state == 11) //Not Available
        )
        {
        throw new …
Run Code Online (Sandbox Code Playgroud)

c# printing status

12
推荐指数
3
解决办法
4万
查看次数

MATLAB:将uint32(4字节)值转换为相应的IEEE单精度浮点形式

在MATLAB(r2009b)中,我有一个包含值2147484101的uint32变量.

这个数字(4字节)是在抓取过程中从数字机器视觉相机中提取的.根据我的理解,它具有相机快门速度的单精度形式(应接近1/260s = 3.8ms).

如何使用MATLAB中提供的内容将此32位数转换为IEEE单精度浮点表示?

对于变量n中提到的值,我尝试使用nn = dec2hex(n,16)hex2num(nn)的组合.但似乎hex2num期望十六进制编码是双精度的而不是单一的,因为它在这里.至少我用这种方法得到了奇怪的数字.

有任何想法吗?

编辑:尝试@Matt的答案如下:

typecast(uint32(2147484101),'single') %# without swapbytes
typecast(swapbytes(uint32(2147484101)),'single') %# with swapbytes
Run Code Online (Sandbox Code Playgroud)

这使:

ans =

  -6.3478820e-043

ans =

  -2.0640313e+003
Run Code Online (Sandbox Code Playgroud)

我在http://www.h-schmidt.net/FloatApplet/IEEE754.html上尝试了IEEE 754转换器(JAVA applet).

使用:

format hex
typecast(uint32(2147484101),'uint8') %# without swapbytes
typecast(swapbytes(uint32(2147484101)),'uint8') %# with swapbytes
Run Code Online (Sandbox Code Playgroud)

ans =

   c5   01   00   80

ans =

   80   00   01   c5
Run Code Online (Sandbox Code Playgroud)

将这些字节输入applet(十六进制)给出了与MATLAB相同的数字.

floating-point binary matlab double-precision ieee-754

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

如何从.NET CultureInfo类派生自定义文化?

我想将我的应用文化设置为我想要的任何东西,无论操作系统文化是什么.为了获得这个,我使用了"fa-IR"作为文化的CultureInfo类,但它使用"GregorianCalendar"作为默认日历而不是.NET PersianCalendar类.所以我试图从CultureInfo派生一个新类来实现我的客户文化:

/// <summary>
/// Represents culture specific information, Persian calendar and number format info for Iran.
/// </summary>
public class PersianCultureInfo : CultureInfo
{
    private Calendar _calendar = new PersianCalendar();

    public PersianCultureInfo()
        : base("fa-IR", true)
    {
    }

    /// <summary>
    /// Persian calendar with solar system algorithm for Iran.
    /// </summary>
    public override Calendar Calendar
    {
        get
        {
            return this._calendar;
        }
    }

    public static PersianCultureInfo Create()
    {
        PersianCultureInfo culture = new PersianCultureInfo();
        culture.PerpareDateTimeFormatInfo();
        return culture;
    }

    private void PerpareDateTimeFormatInfo()
    { …
Run Code Online (Sandbox Code Playgroud)

c# globalization cultureinfo persian datetime-format

6
推荐指数
2
解决办法
3129
查看次数

将代码合同部署到生产环境中是不是很糟糕?

我正在引用这个答案(强调我的):

看看ContractClass和ContractClassFor属性.这允许您在单独的程序集中编写具有代码契约的类.这使您可以使合同可用于开发工作,不会使代码混乱,也意味着您不必使用实时代码部署合同

  1. 你为什么不想要部署合同?

  2. 从最佳实践角度来看,合同是否严格用于开发和质量控制?

.net code-contracts

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

你能用Core Graphics绘制文字阴影/轮廓吗?

我有一个绘制圆角矩形的类,在它周围放置一个边框,中间有一段文字.

我想在文本中添加阴影/轮廓,以便文本看起来像UINavigationBar上的标题.

CoreGraphics可以实现吗?

iphone cocoa-touch objective-c

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

可达性reachabilityWithAddress不起作用

我正在尝试使用以下代码确定iphone是否可以连接到我的IP地址

struct sockaddr_in server_address;   
server_address.sin_len = sizeof(server_address);
server_address.sin_family = AF_INET;
server_address.sin_port = htons(8888);
server_address.sin_addr.s_addr = inet_addr("1.2.3.4");
Reachability *r = [[Reachability reachabilityWithAddress:&server_address ] retain];
NetworkStatus internetStatus = [r currentReachabilityStatus];
Run Code Online (Sandbox Code Playgroud)

但它始终表示状态为"Reachable",与我在IP地址中提供的内容无关.我做错了吗?为什么这不起作用?感谢您的见解.

iphone reachability

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