我完成了.NET和Web开发.并希望开始为iPhone编写应用程序.
我需要从哪里开始 - 任何SDK或我需要得到的东西 - 需要学习什么语言 - 我使用Windows,我将不得不切换到Mac进行iPhone开发 - 是否有任何iPhone设备模拟器或我将有也买iPhone
我正在尝试在我的代码中创建成员函数的查找表,但它似乎试图调用我的复制构造函数,我通过扩展"uncopyable"类来阻止它.我所拥有的是以下内容.
enum {FUN1_IDX, FUN2_IDX, ..., NUM_FUNS };
class Foo {
fun1(Bar b){ ... }
fun2(Bar b){ ... }
...
void (Foo::*lookup_table[NUM_FUNS])(Bar b);
Foo(){
lookup_table[FUN1_IDX] = &Foo::fun1;
lookup_table[FUN2_IDX] = &Foo::fun2;
}
void doLookup(int fun_num, Bar b) {
(this->*lookup_table[fun_num])(b);
}
};
Run Code Online (Sandbox Code Playgroud)
错误是'(this - > ...'行试图调用复制构造函数,这是不可见的.为什么要尝试这样做,我需要改变什么,所以它不会?
这是我遇到过的一个问题很多次,我确信这是一个我缺少的优雅解决方案.
我在c#中有一些DateTime变量,我从各种SQL表/网站/ Web服务发送,通常以字符串形式发送.问题是这些来源中的一些被设置为英语(美国),一些被设置为英语(英国).我无法控制其中的一些,因为我非常希望将它们全部设置为一种文化或另一种文化.
到目前为止,我一直在使用CultureInfo对象转换它们,以正确格式化,如:
CultureInfo ci = new CultureInfo("en-GB");
Convert.ToDateTime(inputDateTimeString, ci);
Run Code Online (Sandbox Code Playgroud)
然而,最近我才知道转换不知道原始DateTime所处的文化(正如我所说,可能是美国或英国),因为它只是一个字符串.
对于日期字符串,例如"06/15/2009",这很好,因为转换识别'15'不能是月份.但是,日期字符串"06/07/2009"将始终有效,但根据原件是美国还是英国,它可能指的是不同的日期和月份.
是否有一种更好的可接受的方法来处理DateTime,从而减少这些含糊之处?谢谢.
编辑:是的,所以似乎没有可靠的方法来始终转换为正确的格式,因为我的信息是有限的.
这些DateTime字符串的一个来源是.dll我无法控制.但是,我可以控制此.dll用于访问存储信息的数据库的SQL登录.如果我要将此登录的语言设置更改为英式英语(目前是美国英语),它会以该格式检索DateTime,还是会无效?我必须检查当前它没有搞砸任何其他东西,但它可能有效吗?
Java通常可以根据参数推断泛型(甚至在返回类型上,与例如C#相反).
例证:我有一个Pair<T1, T2>只存储一对值的泛型类,可以按以下方式使用:
Pair<String, String> pair = Pair.of("Hello", "World");
Run Code Online (Sandbox Code Playgroud)
该方法of看起来像这样:
public static <T1, T2> Pair<T1, T2> of(T1 first, T2 second) {
return new Pair<T1, T2>(first, second);
}
Run Code Online (Sandbox Code Playgroud)
非常好.但是,这不再适用于以下需要使用通配符的用例:
Pair<Class<?>, String> pair = Pair.of((Class<?>) List.class, "hello");
Run Code Online (Sandbox Code Playgroud)
(注意显式强制转换以List.class生成正确的类型.)
代码失败,出现以下错误(由Eclipse提供):
类型不匹配:无法转换
TestClass.Pair<Class<capture#1-of ?>,String>为TestClass.Pair<Class<?>,String>
但是,显式调用构造函数仍然按预期工作:
Pair<Class<?>, String> pair =
new Pair<Class<?>, String>((Class<?>) List.class, "hello");
Run Code Online (Sandbox Code Playgroud)
有人可以解释这种行为吗?它是按设计的吗?它需要吗?我做错了什么,或者我偶然发现编译器中的设计/错误存在缺陷?
狂野猜测:"捕获#1-of?"似乎暗示通配符由动态编译器填充,使类型为a Class<List>,从而使转换失败(从)Pair<Class<?>, String>到Pair<Class<List>, String>.这是正确的吗?有办法解决这个问题吗?
为了完整起见,这里是Pair该类的简化版本:
public final class Pair<T1, T2> {
public …Run Code Online (Sandbox Code Playgroud) 如何使用Rhino Mocks使用构造函数模拟对象?
例如,如何嘲笑这个对象......
public class Foo : IFoo
{
private IBar bar;
public Foo (IBar bar)
{
this.bar = bar
}
public DoSomeThingAwesome()
{
//awesomeness happens here
}
}
Run Code Online (Sandbox Code Playgroud) 我对F#很新,所以请原谅这个全新的问题:
我有一个序列存储在一个名为price的变量中.我想将此序列的内容输出到交互式窗口.执行此操作的最简单命令是什么?
这是我的序列:
> prices;;
val it : seq<System.DateTime * float> = seq []
Run Code Online (Sandbox Code Playgroud)
我试过printf'ing它,但这给了我错误:
> printf("%A", prices);;
printf("%A", prices);;
-------^^^^^^^^^^^^
stdin(82,8): error FS0001: The type ''b * 'c' is not compatible with the type 'Printf.TextWriterFormat<'a>'
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
例:
myEnumerable.Select(a => ThisMethodMayThrowExceptions(a));
Run Code Online (Sandbox Code Playgroud)
即使抛出异常,如何使其工作?就像带有默认值的try catch块一样,会抛出异常......
我最近读过关于应该如何避免游标的内容.好吧,我想知道我对它们的使用是否合适.
我正在创建一个可在线工作的脚本引擎(嵌入在页面,服务器端)此脚本引擎将由本产品的"高级"最终用户使用.然而,该产品与数据库非常相似,并且脚本语言类似于C语言,但简化为类似于PHP的地方.对于数据库,我基本上需要这样的语法,因为它是语言中最一致的语法,没有最终用户必须手写SQL代码(如果我们要让他们这样做,为什么他们不能跳过脚本引擎作为它的生活更简单).语法是这样的:
declare DataSet $data("tablename","OtherID="+$oid);
//Dataset(string tablename,string where_clause_addon)
$data["field1"]="the data of field... ";
$data.Next();
$data["field1"]="The data of the next row";
$data[10]["field1"]="The data of the 10th row";
Run Code Online (Sandbox Code Playgroud)
我通过为每个DataSet创建一个全局游标(我只在应用程序中使用1个连接)然后让全局游标跟踪当前行位置(它也是一个SCROLL和UPDATE游标)来内部控制它.这使我的生活变得更加简单,否则我将被迫编写自己的SQL控件来对抗.Net的糟糕DataReader.
游标的使用是否正常?请注意,具有这些脚本的页面将无法在全球范围内访问,仅适用于客户端(因此可能只有3-10个用户同时访问).
有没有人看到更好的方法来跟踪当前的变量位置?(因为这些能够解决未知模式的表)
另外,使用这样的游标我会遇到并发问题吗?(我的文档说游标是连接的全局,并且每个页面请求在现场建立新连接,因此用户不共享连接)
我有一个应用程序,它依赖于我为Linux工作而构建的PyGTK,PyGobject和PyCairo.我想将它移植到Windows,但是当我执行时,import gobject我得到这个:
Traceback (most recent call last):
import gobject
File "C:\Python26\lib\site-packages\gtk-2.0\gobject\__init__.py", line 30, in <module>
from gobject.constants import *
File "C:\Python26\lib\site-packages\gtk-2.0\gobject\constants.py", line 22, in <module>
from _gobject import type_from_name
ImportError: DLL load failed: The specified procedure could not be found.
Run Code Online (Sandbox Code Playgroud)
这似乎是由使用MinGW构建到Microsoft Visual Studio的转换引起的,如Python Bug 3308(closed: wontfix)所示.
有没有办法以一种可以在Windows上使用Python 2.6的方式安装PyGTK/PyGObject,而无需从源代码重新编译其中一个?