问题列表 - 第17637页

为什么我不能通过单个隐式转换为枚举来打开类

我想知道为什么单个隐式转换为枚举值的方式与转换为系统类型时的方式不同.我看不出任何技术上的原因,但也许有人比我更聪明,能给我带来一些启示.

后续编译无法编译,"A value of an integral type expected""Cannot implicitly convert type 'Test.En' to 'Test.Foo".

void test1 (){
    Foo f = new Foo();

    switch (f)         // Comment this line to compile
    //switch ((En)f)   // Uncomment this line to compile
    {
        case En.One:
            break;
    }
}


//////////////////////////////////////////////////////////////////

public enum En
{
    One,
    Two,
    Three,
}

public class Foo
{
    En _myEn;

    public static implicit operator En(Foo f)
    {
        return f._myEn;
    }
}
Run Code Online (Sandbox Code Playgroud)

从规范编辑:

switch语句的控制类型由switch表达式建立.如果switch表达式的类型是sbyte,byte,short,ushort,int,uint,long,ulong,char,string或enum-type,那么这就是switch语句的控制类型.否则,从switch表达式的类型到以下可能的控制类型之一,必须存在一个用户定义的隐式转换(第6.4节): …

c# enums switch-statement

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

为什么很多语言缺少逻辑XOR运算符?

在我的脑海中,我无法想到我使用过的具有逻辑异或操作符的单一语言,但它们都具有逻辑和按位and以及or运算符.

环顾四周,我能找到的唯一原因是独占或不能短路,所以逻辑版本将是无用的,我真的看不到这种情况.之所以引起我的注意,大多数语言缺乏这个是我需要它(我使用Ruby,所以我写了一个方法将一个整数转换为一个布尔值,然后使用按位XOR,这在布尔行为就像逻辑XOR) .

仅使用按位XOR也不起作用,因为它会产生不同的结果.

0b0001  ^  0b1000 = 0b1001 (True)
0b0001 XOR 0b1000 = False
// Where ^ is bitwise exclusive or and XOR is logical exclusive or
// Using != (not equal to) also doesn't work
0b0001 != 0b1000 = True
Run Code Online (Sandbox Code Playgroud)

那么为什么大多数语言都不包含逻辑独占或运算符?

编辑:我添加了一个例子,!=它也不能做我想要的,它几乎可以,但是遇到了同样的问题,使用按位独占或它,它只有你知道你正在使用零或一个,而不是任何其他数字.

需要注意的是,这假设语言使用零作为false,非零作为true.

bit-manipulation language-design

11
推荐指数
4
解决办法
1777
查看次数

加速顺序java迭代器可能吗?

这就是我通常迭代一个集合的方式

 for(Iterator iterator = collectionthing.iterator(); iterator.hasNext();){
Run Code Online (Sandbox Code Playgroud)

我相信大多数人这样做,我想知道有没有比顺序迭代更好的方法?有没有任何java库..我可以通过多代码cpu使这个并行执行?=)

期待大家的反馈.

java java-ee

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

在Cocoa Touch中阅读.ppt(MS PowerPoint)文件

知道如何在Cocoa Touch中读取.ppt文件吗?

我试图在UIWebView中加载文件的内容,但它不起作用.这是代码:

[aWebView loadData:[NSData dataWithContentsOfFile:filePath]
          MIMEType:@"application/vnd.ms-powerpoint"
  textEncodingName:@"utf-8"
           baseURL:[NSURL fileURLWithPath:filePath]];

[powerWeb loadData:[NSData dataWithContentsOfFile:filePath]
          MIMEType:@"application/vnd.ms-powerpoint"
  textEncodingName:@"utf-8"
           baseURL:[NSURL fileURLWithPath:filePath]]; 
Run Code Online (Sandbox Code Playgroud)

所有建议都非常感谢.

谢谢

powerpoint cocoa-touch objective-c uiwebview

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

Objective-C程序中的C风格太多了?

嗨,我正在写这个问题,因为我是ObjC的新手,在尝试制作拳头训练应用程序时,我想到了很多疑问.问题是我在C方面有很强的背景,去年我一直用Java编程,而且我用Smalltalk做了一些拼贴画(我这是因为那些是我的编程参考资料,而那些是我的语言' m比较ObjC).

我遇到的第一个问题是我不知道在ObjC和C之间画一条线的位置,例如在处理数学运算时,我应该使用math.h还是有更多像你这样的"对象方式"可以用Smalltalk(aNumber raiseTo:3)吗?C中没有背景的人如何学习ObjC?

我找不到的另一件事是集合的协议(我查看了Apple提供的Foundation Framework文档).因为我想实现一个expresion树类,我想知道是否有所有集合应该实现的方法(比如在Smalltalk或Java中),或者我需要手动检查每个集合,看看我的新集合是否应该有一个很酷的方法有.

我不知道我是不是太傻了,或者我正在寻找语言/框架没有的功能.我想在ObjC中编写ObjC风格,不考虑C,Java或Smalltalk.

对不起,如果问题太长了.

cocoa objective-c

7
推荐指数
3
解决办法
402
查看次数

MetadataType问题

我正在使用VS2008 SP1,WCF Ria Service 2009年7月CTP.我发现MetadataType在部分类模式下不起作用,真的不知道我错过了什么:

工作:-

public partial class Person
{
    private string _Name;

    [Required(AllowEmptyStrings=false, ErrorMessage="Name required entry")]
    [StringLength(3)]
    public string Name
    {
        set{_Name = value;}
        get{return _Name;}
    }
}

class Program
{
    static void Main(string[] args)
    {
        Person p = new Person { Name="123432" };
        List res = new List();
        Validator.TryValidateObject(p,new ValidationContext(p,null,null),
            res,true);
        if (res.Count > 0)
        {
            Console.WriteLine(res[0].ErrorMessage);
            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

不行

public partial class Person
{
    private string _Name;

    public string Name
    {
        set{_Name = value;} …
Run Code Online (Sandbox Code Playgroud)

.net data-annotations

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

嵌入小程序不适用于我的网站

我正在尝试编写applet并将其放入我的网站.我记得很久以前在使用Borland的时候做了这个,当1.4是最新版本时.它当然使用了applet标签(我目前正在使用它),它没有任何问题.但无论如何,我把类文件放在它自己的目录下的httpdocs /中,然后在网页中使用这个代码:

<applet code="wsavatar/WSAvatar" width="425" height="150> Your browser does not support the applet tag. </applet>

当我尝试加载页面时,会发生这种情况:

Java Plug-in 1.6.0_17 Using JRE version 1.6.0_17-b04 Java HotSpot(TM) Client VM

java.lang.ClassFormatError: Incompatible magic value 1008813135 in class file   
  wsavatar/WSAvatar
  at java.lang.ClassLoader.defineClass1(Native Method)
  at java.lang.ClassLoader.defineClass(Unknown Source)
  at java.security.SecureClassLoader.defineClass(Unknown Source)
  at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
  at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
  at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
  at java.lang.Thread.run(Unknown Source)
Exception: java.lang.ClassFormatError: Incompatible magic value 1008813135
in class file wsavatar/WSAvatar
Run Code Online (Sandbox Code Playgroud)

<applet code="wsavatar/WSAvatar" width="425" height="150> …

java applet magic-numbers

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

如何设计这个"公交车站"数据库?

我想设计一个关于公交车站的数据库.这个城市大约有60辆公共汽车,每个都有这些信息:

  • BusID
  • BusName
  • 路上的车站列表(前进和后退)

该数据库必须能够有效地进行搜索,例如,当用户想要列出通过A和B站的总线时,它必须快速运行.

在我的第一个想法中,我想将站点放在一个单独的表中,包括StationId和Station,然后站点列表将包含那些StationIds.我拜访它可能有用,但不确定它是否有效.

我该如何设计这个数据库?

非常感谢你.

mysql database

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

上传图片时通知栏中的进度条?

我希望我的应用程序将图像上传到Web服务器.那部分有效.

我想知道是否可以通过在"通知栏"中输入条目来以某种方式显示上传的进度.我看到Facebook应用就是这么做的.

当你拍照并选择上传时,该应用程序可让你继续,并以某种方式将图片上传通知放在通知栏的进度条中.我觉得这很漂亮.我猜他们会产生一个新的服务或其他东西来处理上传,并经常更新通知栏中的进度条.

谢谢你的任何想法

android

34
推荐指数
2
解决办法
5万
查看次数

Mercurial - 如何创建在两个修订版之间更改的.zip文件?

我有一个个人的Mercurial存储库,可以跟踪我正在进行的一些更改.我想与协作者分享这些更改,但是他们没有/不能获得Mercurial,因此我需要发送整个文件集,协作者将在他们的末尾合并.我正在寻找一种方法来提取在两个修订号之间修改的文件子集的"提示"版本.有没有办法在Mercurial中轻松完成此操作?

添加赏金 - 这对我们来说仍然是一种痛苦.我们经常与内部"客户"合作,他们将我们的源代码版本作为.zip,测试一个小的修补程序更容易分发为.zip叠加而不是补丁(因为我们经常不知道他们的文件的状态).

mercurial export

8
推荐指数
3
解决办法
4673
查看次数