问题列表 - 第47047页

如何将泛型类型参数限制为System.Enum

可能重复:
任何人都知道缺少枚举通用约束的好方法?
创建将T限制为枚举的通用方法

是否可以将泛型类型参数[我不知道这是否是正确的名称]限制为Enum

例如,我该怎么做这样的事情?

//VB.NET
Function GetValues(Of T As System.Enum)(ByVal value As T) As IEnumerable(Of T)
    Return [Enum].GetValues(value.GetType)
End Function

//C#
public IEnumerable<T> GetValues<T>(T value) where T : System.Enum
{
    return Enum.GetValues(value.GetType());
}
Run Code Online (Sandbox Code Playgroud)

更新

为了这个目的,我最终使用了Jon Skeet的Unconstrained Melody.感谢大家的贡献.

.net c# vb.net enums

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

为什么动态关键字不能用于动态加载的程序集?

我正在研究一个CSharp表达式求值程序,可以使用,如下所示.该组件生成代码并在内存中编译它,之后,它加载生成的程序集,创建生成的类的实例并运行它.结果保存在字典中.

我的问题是所有运行正常,直到最后一行代码失败,异常:

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'object '不包含'FirstName'的定义.

但是,Visual Studio能够向我展示专业变量内容:

Professional = { FirstName = Juan Pablo, 
                LastName = Ibañez, 
                Certifications = <>f__AnonymousType0`3[System.String,System.String,System.String][], 
                SayHi = System.Action }
Run Code Online (Sandbox Code Playgroud)

这是代码:

    static void Main(string[] args)
    {
        const string data = @"results[""professional""] = 
        new
        {
            FirstName = ""Juan Pablo"",
            LastName = ""Ibañez"",
            Certifications = new[]
            {
                new { Provider=""MSFT"", ExamCode = ""70-536"", Title = ""TS: Microsoft .NET Framework – Application Development Foundation"" },
                new { Provider=""MSFT"", ExamCode = ""70-505"", Title = ""TS: Microsoft .NET Framework – Application Development …
Run Code Online (Sandbox Code Playgroud)

c# dynamic-keyword dynamic-assemblies

14
推荐指数
1
解决办法
1348
查看次数

WPF图像:在多个源更新后获取实际大小

我正在根据ComboBox选择更新图像控件的Source.

更新图像源后,我需要读取图像的ActualWidth和ActualHeight

我在第一次使用Image控件的Loaded事件打开对话框时工作,但是每次更新Source时这个事件都没有明显提升.

有没有办法在每次Source更新后获得加载到控件中的图像的实际大小?

size wpf image wpf-controls

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

在目标C中创建整数或NSUIntegers数组

如何在目标c中为整数或NSUIntegers创建数组?

问题是我想要一个我可以经常更改的数组(NSMutableArray?)但是当我尝试添加对象时:someInt或someNSUInteger我得到一个关于"没有强制转换"的警告,当代码执行应用程序崩溃时.

设置它的最快方法是什么?我不知道阵列的大小.它应该是动态的.

objective-c

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

完全数 1 到 n

编写一个算法,打印从 1 到 n 的完美数。要确定一个数字是否完美,请将所有小于该数字的因数相加。如果总和等于数字,则是完美的。

import java.util.Scanner;

public class Assign_6 {

    public static void main(String[] args){

        int num,number,sum=0,factor;

        System.out.print("Enter Number");
        Scanner keyboard = new Scanner (System.in);

        number=keyboard.nextInt();

        for (num=1;num<number;num++){
            for(factor=1;factor<number;factor++){
                if(num%factor==0){
                    sum= sum+factor;
                }
                if(sum==num){
                    System.out.println(sum);
                }
                sum=0;
            }

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:24

什么都打印不出来。不知道怎么回事。我哪里错了?我只能使用 while、for 和 else-if 语句。

java for-loop if-statement perfect-numbers

-1
推荐指数
1
解决办法
9768
查看次数

替代元组

因为.net framework 4.0支持Tuples.Tuple Class在3.5中不可用但是有什么方法可以在.net 3.5中创建我自己的类MyTuple吗?

asp.net

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

JQuery Datepicker - 添加年份

我已将JQuery Datepicker控件添加到我的一个ASP.Net页面中.该页面允许用户添加有关设备的详细信息.

他们还可以使用Datepicker选择他们购买设备的日期,然后从下拉列表中选择设备随附的保修长度(即1,2,3,4,5岁等).根据他们选择的保修期,我需要JQuery代码来计算设备保修期到期的日期,即,如果购买21/02/2011,3年保修,则保修到期日为21/02/2014.

我看过这个网站上的其他Datepicker示例,但似乎都没有显示如何将日期添加到日期,而只是如何添加天数.

到目前为止这是我的代码

$('#equipment_purchaseDate').datepicker({ dateFormat: 'dd/mm/yy', onSelect: function (dateStr) {
        var d = $.datepicker.parseDate('dd/mm/yy', dateStr);
        d.setDate(d.getDate() + ($('#equipment_warrantyLength').val() * 365)); //multiple warranty length by 365 to get years, then add to startDate
        $('#equipment_warrentyExpires').datepicker('setDate', d);
    } 
});
Run Code Online (Sandbox Code Playgroud)

但是这似乎没有正常工作.

任何反馈都将非常感激.

谢谢.

jquery jquery-ui datepicker

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

如何在NSDate中添加1天?

基本上,正如标题所说.我想知道我怎么能加1天NSDate.

如果它是:

21st February 2011
Run Code Online (Sandbox Code Playgroud)

它会变成:

22nd February 2011
Run Code Online (Sandbox Code Playgroud)

或者如果是:

31st December 2011
Run Code Online (Sandbox Code Playgroud)

它会变成:

1st January 2012.
Run Code Online (Sandbox Code Playgroud)

cocoa-touch date objective-c nsdate

309
推荐指数
17
解决办法
19万
查看次数

xslt匹配过滤结果集的前x项

对于xslt来说还是新手,请原谅我这是一个基本问题 - 我无法在SO上找到答案,也无法在Google上搜索.

我要做的是返回一组经过筛选的节点,然后在该集合中的前1个或2个项目上进行模板匹配,另一个模板与剩余部分匹配.但是,如果没有<xsl:for-each />循环,我似乎无法做到这一点(这是非常不受欢迎的,因为我可能匹配3000个节点并且仅以不同方式处理1).

使用position()不起作用,因为它不受过滤影响.我已经尝试对结果集进行排序,但这似乎没有及早生效以影响模板匹配.在<xsl:number />输出正确的数字,但我不能在比赛语句中使用这些.

我在下面放了一些示例代码.我正在使用position()下面不合适的方法来说明问题.

提前致谢!

XML:

<?xml version="1.0" encoding="utf-8"?>
<news>
    <newsItem id="1">
        <title>Title 1</title>
    </newsItem>
    <newsItem id="2">
        <title>Title 2</title>
    </newsItem>
    <newsItem id="3">
        <title></title>
    </newsItem>
    <newsItem id="4">
        <title></title>
    </newsItem>
    <newsItem id="5">
        <title>Title 5</title>
    </newsItem>
</news>
Run Code Online (Sandbox Code Playgroud)

XSL:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="/">
        <ol>
            <xsl:apply-templates select="/news/newsItem [string(title)]" />
        </ol>
    </xsl:template>

    <xsl:template match="newsItem [position() &lt; 4]">
        <li>
            <xsl:value-of select="title"/>
        </li>
    </xsl:template>

    <xsl:template match="*" /> …
Run Code Online (Sandbox Code Playgroud)

xml xslt umbraco

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

是否有基于身份验证的加密实现?

我一直在阅读了有关基于ID的密码,但找不到任何实现(在数学论文是有点多对我来说).有谁知道我可能会去哪里寻找实现?我真的不介意它是什么语言.

encryption cryptography public-key-encryption

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