小编Bud*_*dda的帖子

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

如何在C#中创建具有整数序列的数组?

F#有序列,它允许创建序列:

seq { 0 .. 10 }
Run Code Online (Sandbox Code Playgroud)

创建0到10之间的数字序列.

C#中有类似的东西吗?

.net c# f# sequence

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

Android:如何处理按钮点击

我在非Java和非Android领域拥有丰富的经验,我正在学习Android.

我对不同领域有很多困惑,其中之一就是如何处理按钮点击.至少有4种方法(!!!),这里简要列出

为了保持一致性,我将列出它们:

  1. View.OnClickListener在活动中拥有该类的成员,并将其分配给将onClickonCreateactivity方法中处理逻辑的实例.

  2. 在'onCreate'活动方法中创建'onClickListener'并使用setOnClickListener将其分配给按钮

  3. 在活动本身中实现'onClickListener'并将'this'指定为按钮的监听器.对于活动按钮很少的情况,应该分析按钮ID以执行适当按钮的'onClick'处理程序

  4. 对实现'onClick'逻辑的活动有公共方法,并将其分配给activity xml声明中的按钮

问题#1:

这些都是方法,还有其他选择吗?(我不需要任何其他的,只是好奇)

对我来说,最直观的方式是最新的方式:它需要输入最少量的代码并且是最可读的(至少对我而言).

虽然,我没有看到这种方法被广泛使用.使用它有什么用处?

问题2:

每种方法的优缺点是什么?请分享您的经验或良好的链接.

欢迎任何反馈!

PS我试过谷歌并找到了一些关于这个话题的东西,但我发现的唯一的东西就是描述"如何"做到这一点,而不是为什么它好或坏.

java android android-button onclicklistener

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

IUnityContainer.Resolve <T>抛出错误声称它不能与类型参数一起使用

昨天我已经实现了代码:

CustomerProductManager productsManager = container.Resolve<CustomerProductManager>();
Run Code Online (Sandbox Code Playgroud)

它是可编辑和工作的.

今天(可能是我修改了一些东西)我经常收到错误:

非泛型方法'Microsoft.Practices.Unity.IUnityContainer.Resolve(System.Type,string,params Microsoft.Practices.Unity.ResolverOverride [])'不能与类型参数一起使用

我的同事有相同的源代码,没有相同的错误.为什么?如何解决问题?

PS

行"使用Microsoft.Practices.Unity;" 存在于使用部分.

我试图用非泛型版替换泛型版:

CustomerProductManager productsManager = (CustomerProductManager)container.Resolve(typeof(CustomerProductManager));
Run Code Online (Sandbox Code Playgroud)

并得到另一个错误:

方法'Resolve'没有重载需要'1'参数

It seems like one of the assemblies is not referenced.. but which one? I have 2 of them referenced: 1. Microsoft.Practices.Unity.dll 2. Microsoft.Practices.ServiceLocation.dll

P.P.S. I've saw similar problem http://unity.codeplex.com/WorkItem/View.aspx?WorkItemId=8205 but it is resolved as "not a bug"

Any thought will be helpful

.net c# generics compilation unity-container

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

单身双重锁定锁定

这是我的单例模式的自定义类.在这段代码中,我使用双重检查锁定如下.当我在某些源上阅读很多帖子时,他们说双重检查很有用,因为它可以防止两个并发线程同时运行产生两个不同的对象.

public class DoubleCheckLocking {

    public static class SearchBox {
        private static volatile SearchBox searchBox;

        // private constructor
        private SearchBox() {}

        // static method to get instance
        public static SearchBox getInstance() {
            if (searchBox == null) { // first time lock
                synchronized (SearchBox.class) {
                    if (searchBox == null) {  // second time lock
                        searchBox = new SearchBox();
                    }
                }
            }
            return searchBox;
        }
}
Run Code Online (Sandbox Code Playgroud)

我仍然不太了解上面的代码.如果两个线程在实例为空时一起运行相同的代码行,会出现什么问题?

if (searchBox == null) {
                synchronized (SearchBox.class) {
                    if (searchBox == null) {
                        searchBox = …
Run Code Online (Sandbox Code Playgroud)

java singleton multithreading design-patterns

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

使用MVVM在WPF中创建新窗口的最佳方法

在邻居帖子中:ViewModel应如何关闭表单? 我发布了如何使用MVVM关闭Windows的愿景.现在我有一个问题:如何打开它们.

我有一个主窗口(主视图).如果用户单击"显示"按钮,则应显示"演示"窗口(模态对话框).使用MVVM模式创建和打开窗口的首选方法是什么?我看到两种一般方法:

第一个(可能是最简单的).事件处理程序"ShowButton_Click"应该在主窗口的代码中实现,方式如下:

        private void ModifyButton_Click(object sender, RoutedEventArgs e)
        {
            ShowWindow wnd = new ShowWindow(anyKindOfData);
            bool? res = wnd.ShowDialog();
            if (res != null && res.Value)
            {
                //  ... store changes if neecssary
            }
        }
Run Code Online (Sandbox Code Playgroud)
  1. 如果我们"显示"按钮状态应该被更改(启用/禁用),我们将需要添加将管理按钮状态的逻辑;
  2. 源代码非常类似于"旧式"WinForms和MFC源 - 我不确定这是好还是坏,请指教.
  3. 还有其他我错过的东西?

另一种方法:

在MainWindowViewModel中,我们将实现"ShowCommand"属性,该属性将返回命令的ICommand接口.Comman反过来:

  • 将举起"ShowDialogEvent";
  • 将管理按钮状态.

这种方法将更适合MVVM,但需要额外的编码:ViewModel类不能"显示对话框",因此MainWindowViewModel只会引发"ShowDialogEvent",MainWindowView我们需要在其MainWindow_Loaded方法中添加事件处理程序,这样的事情:

((MainWindowViewModel)DataContext).ShowDialogEvent += ShowDialog;
Run Code Online (Sandbox Code Playgroud)

(ShowDialog - 类似于'ModifyButton_Click'方法.)

所以我的问题是:1.你看到其他任何方法吗?你认为其中一个是好还是坏?(为什么?)

欢迎任何其他想法.

谢谢.

.net c# wpf mvvm

55
推荐指数
3
解决办法
5万
查看次数

如何在不使用字符串名称的情况下引发PropertyChanged事件

能够在没有明确指定已更改属性的名称的情况下引发"PropertyChanged"事件是一件好事.我想做这样的事情:

    public string MyString
    {
        get { return _myString; }
        set
        {
            ChangePropertyAndNotify<string>(val=>_myString=val, value);
        }
    }

    private void ChangePropertyAndNotify<T>(Action<T> setter, T value)
    {
        setter(value);
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(setter.Method.Name));
        }
    }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,收到的名称是lambda方法的名称:"<set_MyString> b__0".

  1. 我可以确定,修剪"<set_"和"> b__0"将始终提供正确的属性名称吗?
  2. 还有其他任何关于财产变更的通知(来自财产本身)?

谢谢.

.net reflection lambda binding inotifypropertychanged

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

HTML + CSS:'a'宽度不起作用

我有以下代码:

CSS部分:

<style type="text/css">
    .menu
    {
        width:200px;
    }

    .menu ul
    {
        list-style-image:none;
        list-style-type:none;
    }

    .menu li
    {
        margin:2px;
    }

    .menu A
    {
        height:25px;
        width:170px;
        background:url(./images/button-51.png);
        padding:2px 5px ;
    }

    .menu A:link
    {
        height:25px;
        width:170px;
        background:url(./images/button-51.png);
        padding:2px 5px ;
    }
</style>
Run Code Online (Sandbox Code Playgroud)

HTML部分:

一切正常,但是当我在HTML文档的开头添加'DOCTYPE'元素时:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)

不考虑'a'元素的宽度.

问题1:为什么?

问题2:如何解决这个问题?

非常感谢!

html css doctype

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

如何比较枚举和int值?

enum MyEnum
{
    Invalid=0,
    Value1=1,
    Value1=2,
}

void main ()
{
    MyEnum e1 = MyEnum.Value1;
    int i1 = 2;

    // Is there any difference how to compare enumEration values with integers?
    if ( e1==(MyEnum)i1 )... // 1st

    if ( (int)e1==i1 )... // 2nd
Run Code Online (Sandbox Code Playgroud)

在每个提到的案例中,我们将enum转换为int或int转换为enum.

这些转换(性能,还是其他)有什么不同吗?或者他们是完全一样的?

谢谢.

PS在当前的例子中我比较'魔术数'但在实际应用中我从DB的整数字段获取数据.

.net c# enums

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

HTTP错误503.该服务在简单的ASP.NET 4.0网站下不可用

在我的本地笔记本电脑上发生了一些奇怪的事情:我在本地工作了很长时间的网站没有启动......

尝试本地化问题我创建了一个只有'index.html'文件的简单网站.它在ASP.NET 2.0下工作正常,但当我将App Pool切换为使用4.0时 - 它停止工作.

当我在浏览器中打开网站时,它显示以下错误:

暂停服务

http错误503服务不可用.

并导致App池停止工作...在系统事件登录"应用程序"部分我有:

工作进程无法正确初始化,因此无法启动.数据是错误的.

请指教.在Google中找不到任何相关内容...... :(

PS我有VS2010,Windows Vista x64,安装了最后更新,还安装了VS SP1 ...

asp.net asp.net-4.0

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