小编Kyl*_*ten的帖子

C#是否支持返回类型协方差?

我正在使用.NET框架,我真的希望能够创建一个我所有网站都使用的自定义类型的页面.当我尝试从控件访问页面时出现问题.我希望能够返回我的特定类型的页面而不是默认页面.有没有办法做到这一点?

public class MyPage : Page
{
    // My own logic
}

public class MyControl : Control
{
    public MyPage Page { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

c# covariance

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

如何移动自有指针

作为参考,我正在使用Rust 0.7.

我正在尝试使用拥有的链表创建堆栈实现,我遇到了麻烦.

trait Stack<T> {
    fn push(&mut self, item : T);
    fn pop(&mut self) -> Option<T>;
}

enum Chain<T> {
    Link(T, ~Chain<T>),
    Break
}

impl<T> Stack<T> for ~Chain<T> {
    fn push(&mut self, item : T) {
        *self = ~Link(item, *self);
    }
    fn pop(&mut self) -> Option<T> {
        None
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试时,rustc stack.rs我收到以下错误:

stack.rs:13:28: 13:34 error: cannot move out of dereference of & pointer
stack.rs:13         *self = ~Link(item, *self);
                                        ^~~~~~
Run Code Online (Sandbox Code Playgroud)

我不知道如何克服这个问题,或者我能做些什么来做到这一点.看起来我应该能够在不使用托管指针的情况下创建这个数据结构,但我还没有看到很多关于这类内容的文档.

rust

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

在HttpHandler中修改Cookie的值

我有一个cookie用于持久保存用户的用户ID,但是我很难用新值替换它.根据MSDN,我应该能够简单地覆盖该值,但它一直没有工作.我正在处理程序中执行登录逻辑,如果成功,则将用户传递到新网页.

public void ProcessRequest(HttpContext context)
{
    User user = User.FindByUsernameAndPassword(
        context.Request.Form["username"],
        context.Request.Form["password"]);

    context.Response.Cookies["user_id"].Value = user.ID.ToString();

    context.Response.Redirect("/profile", true);
}
Run Code Online (Sandbox Code Playgroud)

我第一次登录它运行良好,但如果我尝试通过使用新的用户ID命中处理程序来覆盖我当前的cookie,它不会更改cookie值,我继续以我当时的用户身份登录我打了它.

其他页面使用cookie登录,但由于用户ID未更改,因此不会更改登录用户.

public User User { get; set; }

public override void Page_Load()
{
    this.User = User.Find(int.Parse(Request.Cookies["user_id"].Value));
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net cookies httphandler

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

如何使用Java生成javadoc?

我正在编写一个Java应用程序,它将让我根据它的文件结构编译一个Java项目,这样我就可以编写代码并在没有IDE的情况下编译.我目前遇到的问题是我想在编译时自动生成javadoc,虽然Java 6提供了一个JavaCompiler对象,但我找不到使用javadoc命令的方法.

如何使用Java代码为我的项目生成javadoc html?

java javadoc

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

如何从NuGet包中排除T4模板

我正在创建一个NuGet包,它为我的WebAPI项目提供了一个客户端,它通过反映ApiControllers并为每个创建类,并使用与控制器上定义的操作相对应的方法.不幸的.tt是,当我运行时,文件被包含在内容文件夹中nuget.exe pack Client.csproj.我已经尝试.nuspec使用<files>指令创建一个文件,但我似乎无法单独排除该文件.有谁知道如何强制包排除T4模板?

项目结构大致如下:

Website/
    Controllers/
        UserController.cs
        ...
Client/
    Client.tt
    Client.cs
        namespace Client
            class UserService
            ...
Run Code Online (Sandbox Code Playgroud)

我想要一个NuGet包,如:

lib/
    net45/
        Client.dll
            namespace Client
                class UserService
Run Code Online (Sandbox Code Playgroud)

但是我得到这样的东西:

content/
    Client.tt
lib/
    net45/
        Client.dll
            namespace Client
                class UserService
                ...
Run Code Online (Sandbox Code Playgroud)

t4 nuget

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

为什么我不能使用这个嵌套的lambda表达式?

我正在尝试从各种查询中维护一个独特模型列表.不幸的是,我们的模型的equals方法没有定义,所以我不能轻易使用哈希映射.

作为快速修复,我使用了以下代码:

public void AddUnique(
    List<Model> source,
    List<Model> result)
{
    if (result != null)
    {
        if (result.Count > 0
            && source != null
            && source.Count > 0)
        {
            source.RemoveAll(
                s => result.Contains(
                    r => r.ID == s.ID));
        }

        result.AddRange(source);
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用.当我踏上throught的代码,我发现,即使我已经检查,以确保有至少一个Model具有相同IDsourceresult,该RemoveAll(Predicate<Model>)行不会更改的项目数source.我错过了什么?

c# lambda

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

如何使用System.Linq.Expressions API模拟"typeof(T)"?

我正在尝试DataTable使用System.Linq.ExpressionsAPI 创建一个从对象列表创建的方法,但我无法弄清楚如何生成我在反编译表达式时得到的以下IL typeof (int).

IL_0000:  nop         
IL_0001:  ldtoken     System.Int32
IL_0006:  call        System.Type.GetTypeFromHandle
IL_000B:  call        LINQPad.Extensions.Dump<Object>
IL_0010:  pop         
IL_0011:  ret
Run Code Online (Sandbox Code Playgroud)

目前我试图通过调用Type.GetType("System.Int")来解决问题,但我想生成代码,typeof (int)如果可能的话.

c# cil metaprogramming expression-trees

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

如何隐藏构造函数?

我正在尝试构建一个类型,LazyList但隐藏了它的定义LazyList.t.我有以下文件:

LazyList.ml

type 'a t =
    | Cell of ('a * 'a t) option Lazy.t
;;

let rec from_list l = ...;;
let rec from_string s = ...;;
let rec from_in_channel c = ...;;

let rec to_list l = ...;;
Run Code Online (Sandbox Code Playgroud)

LazyList.mli

type 'a t;;

val from_list : 'a list -> 'a t;
val from_string : string -> char t;
val from_in_channel : in_channel -> char t;

val to_list : 'a t -> 'a list;
Run Code Online (Sandbox Code Playgroud)

当我运行时,ocamlc …

ocaml

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

在Ruby中调用超级方法

我试图在Ruby中定义一些具有继承层次结构的类,但我想在派生类的基类中使用其中一个方法.扭曲的是,我不想调用我所处的确切方法,我想要调用另一种方法.以下不起作用,但这是我想做的(基本上).

class A
    def foo
        puts 'A::foo'
    end
end

class B < A
    def foo
        puts 'B::foo'
    end
    def bar
        super.foo
    end
end
Run Code Online (Sandbox Code Playgroud)

ruby methods inheritance derived super

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