问题列表 - 第45990页

吸气剂,制定者和属性最佳实践.Java与C#

我现在正在上C#课程,我正在努力寻找最好的做事方式.我来自Java背景,因此我只熟悉Java最佳实践; 我是C#新手!

在Java中,如果我有私有财产,我会这样做;

private String name;

public void setName(String name) {
   this.name = name;
}

public String getName() {
   return this.name;
}
Run Code Online (Sandbox Code Playgroud)

在C#中,我看到有很多方法可以做到这一点.

我可以像Java一样做:

private string name;

public void setName(string name) {
   this.name = name;
}

public string getName() {
   return this.name;
}
Run Code Online (Sandbox Code Playgroud)

或者我可以这样做:

private string name;

public string Name {
   get { return name; }
   set { name = value; }
}
Run Code Online (Sandbox Code Playgroud)

要么:

public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

我应该使用哪一个,每种方法涉及哪些警告或细微之处?在创建类时,我遵循我从Java中了解的一般最佳实践(特别是阅读Effective Java).因此,例如,我赞成不变性(仅在必要时提供setter).我很想知道这些实践如何适应C#中提供setter和getter的各种方法; 基本上,我如何将Java世界的最佳实践转换为C#?

编辑

我发布这篇文章是对Jon Skeet答案的评论,但后来很久了:

那么一个非平凡的财产(也许,可能有重要的处理和验证)?我是否仍然可以通过公共属性公开它,但是逻辑封装在get和 …

c# java properties getter-setter

90
推荐指数
6
解决办法
8万
查看次数

将passwordFormat从Encrypted更改为Hashed

我发现很少有关于将现有数据库从加密密码转换为哈希密码的信息.(我能够找到关于转换另一种方式的更多信息,但它没有多大帮助.)

正如大多数人所知,更改passwordFormatweb.config中的设置只会影响新用户.我有一个包含几百个用户的数据库,我想将它们转换为使用散列密码而不更改现有密码.

是否有其他人熟悉如何处理这个问题?谢谢你的任何提示.

asp.net passwords asp.net-membership

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

Java上的Java Web启动

我可以在iPad上运行Java应用程序(Java Web Start)吗?

看起来这是不可能的,但有人建议使用Cloud Browse(我找不到的应用程序)来运行Java.

有解决方案吗

UPDATE:云浏览器是一个应用程序可以在App Store,但它已被删除我的苹果.Cloud Browse将在外部处理网站,然后将网站内容流式传输到iPad屏幕(类似于视频流).

java java-web-start ipad ios

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

核心数据NSPredicate与SQLITE商店

此代码返回0个不正确的对象.但是,删除谓词时,获取请求将返回所有对象.

NSError *error = nil;

NSEntityDescription *entityDescription = [NSEntityDescription                                              entityForName:@"Person"  inManagedObjectContext:[self managedObjectContext]];

NSPredicate * pr = [NSPredicate predicateWithFormat:@"%K beginswith '%@' ",
                    @"FullName", searchText];

//NSPredicate * pr = [NSPredicate predicateWithFormat:@"PersonID == %@", searchText]; Works fine


NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entityDescription];
 [request setPredicate:pr];
NSArray * arr = [[self managedObjectContext] executeFetchRequest:request error:&error];
Run Code Online (Sandbox Code Playgroud)

FullName属性包含unicode数据(阿拉伯语).

任何帮助表示赞赏.

iphone core-data nspredicate nsfetchrequest

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

Java:静态嵌套类和反射:"$"vs"."

如果我com.example.test.Enum2.Test在下面的代码中有一个类,为什么getCanonicalName()返回com.example.test.Enum2.TestClass.forName()需要"com.example.test.Enum2$Test"作为参数?

有没有办法保持一致,这样我可以通过名称序列化/反序列化枚举值,而不必检查每个$vs .可能性,当枚举是一个嵌套类?

package com.example.test;

import java.util.Arrays;

public class Enum2 {

    enum Test {
        FOO, BAR, BAZ;
    }

    public static void main(String[] args) {
        for (String className : Arrays.asList(
                "com.example.test.Enum2.Test",
                "com.example.test.Enum2$Test"))
        {
            try {
                Class<?> cl = Class.forName(className);
                System.out.println(className+" found: "+cl.getCanonicalName());
            }
            catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }

        System.out.println(Test.FOO.getDeclaringClass().getCanonicalName());
    }
}
Run Code Online (Sandbox Code Playgroud)

澄清:我正在寻找一种在实际应用中处理这个问题的好方法(不仅仅是上面提到的测试用例),或者:

一个.使用getCanonicalName()输出序列化/反序列化(仅点缀名称),并Class.forName()依次尝试每种可能性,例如"com.example.test.Enum2.Test",然后"com.example.test.Enum2$Test",然后"com.example.test$Enum2$Test",等等.

湾 使用正确的$表示法,这样 …

java reflection nested-class

11
推荐指数
2
解决办法
2908
查看次数

同一个类的两个类是否具有相同的哈希码,它们被认为是相同的吗?

我想创建类(Object.class)类的哈希映射.我想知道是否

Object.class被认为等于另一个Object.class?

可以有另一个Object.class实例导致它有不同的哈希码吗?

java

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

检测节点是否存在?

我有一组数据<testData>,里面有很多节点.

如何检测节点是否存在?

我试过了

<xsl:if test="/testData">
Run Code Online (Sandbox Code Playgroud)

<xsl:if test="../testData">
Run Code Online (Sandbox Code Playgroud)

两者都不起作用.我确信这是可能的,但我不确定如何.:P

对于上下文,XML文件的布局如下

<overall>
 <body/>
 <state/>
 <data/>(the one I want access to
 </overall>
Run Code Online (Sandbox Code Playgroud)

我目前在<body>标签中,但我想全球访问它.不应该/overall/data工作?

编辑2: 现在我有一个数据索引,我需要在将模板应用到body内部的标签时随时使用.在身体中,如何判断数据是否存在?有时确实如此,有时却没有.无法真正控制那个.:)

xslt xpath

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

为什么jQuery.ready在页面准备就绪时运行?

所以我经常将jquery文档就绪函数放在我的html底部,只是为了让它在页面的所有元素加载之前运行.我已经厌倦了我的功能无法工作,因为资源没有在页面上完成加载,jquery.ready一直说这些元素在它们不合时完成加载!谁想要设置一个300毫秒的超时,以便他们的功能在jquery.ready之后稍微等一下?

javascript jquery

0
推荐指数
2
解决办法
1262
查看次数

android UI中setLayoutParams方法的问题

我正在制作一个应用程序,我必须在其中更改UI programmaticaly.我需要更改layout_heightlayout_widthXML属性.

但是,当我使用该setLayoutParams方法时,应用程序运行,然后我发出一条消息,表示它意外停止工作,我必须强制关闭.

我也尝试过设置LayoutParams ViewGroup.LayoutParams.但没有任何作用.请查看附加的代码和指南.

这是Java代码.

private void fixLayoutVmain(){
    ListView lv;
    ImageButton rev,stop,play,forw;
    lv=(ListView)findViewById(R.id.ListMain);
    rev=(ImageButton)findViewById(R.id.rev);
    stop=(ImageButton)findViewById(R.id.stop);
    play=(ImageButton)findViewById(R.id.plpa);
    forw=(ImageButton)findViewById(R.id.forw);
    Log.d("DEV1","ID's have been assigned");
    LayoutParams lp=new LayoutParams(W, ((75*H)/100));      
    Log.d("DEV1","param object created");       
    lv.setLayoutParams(lp);     
    Log.d("DEV1","ListView param set");     
    lp.height=(int)(10*H)/100;
    lp.width=(int)(10*H)/100;
    Log.d("DEV1","Changes to param made");
    rev.setLayoutParams(lp);    
    Log.d("DEV1","Reverse Button param applied");
    stop.setLayoutParams(lp);
    Log.d("DEV1","Stop button param applied");
    play.setLayoutParams(lp);
    Log.d("DEV1","forward button param applied");
    forw.setLayoutParams(lp);
    Log.d("DEV1","All imagebutton changes have been made");

}
Run Code Online (Sandbox Code Playgroud)

这是XML文件

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ListVieW
        android:id="@+id/ListMain"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
        <LinearLayout …
Run Code Online (Sandbox Code Playgroud)

android android-layout

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

在TextMate中使用具有不同gemsets的RVM

我根据RVM最佳实践设置了RVM并为我的项目制作了单独的gemsets .现在在TextMate中运行测试文件不起作用,我已经在这里阅读了该怎么做.问题是它不起作用,因为指南希望我只有一个gemset(他们称之为"Rails3").我通常一次打开2-3个项目(使用不同的gemsets),所以我无法有效地使用这种方法.

有没有人解决过这个问题?

ruby textmate rvm

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