标签: coding-style

这两个例子中的哪一个是更好的代码设计?

示例#1

public void mouseClicked(MouseEvent e) {
    if (isShowParameters)
       isShowParameters = false;
    else
       isShowParameters = true;

    ParametersWindows.getInstance().setVisible(isShowParameters);
}  
Run Code Online (Sandbox Code Playgroud)

例#2

public void mouseClicked(MouseEvent e) {
    isShowParameters = !isShowParameters;
    ParametersWindows.getInstance().setVisible(isShowParameters);
}
Run Code Online (Sandbox Code Playgroud)

java swing coding-style

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

一个类的对象共享代码

如果有一个A类,我实例化A的三个对象x,y,z,并且A中有一个函数foo(),那么f的机器代码是否存在三个副本(每个对象一个)?

类方法的目的是什么?当所有对象都有共享代码时,为什么还要使用类方法?它只是HLL程序员的抽象吗?

oop coding-style

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

"value === false"更优雅的替代品?

在JavaScript中,我想比较(严格)相等的值false.

从Java/C#我习惯写:

if (!value)
   //Do Something
Run Code Online (Sandbox Code Playgroud)

但是,我不能在JavaScript中使用它null,undefined(和其他IMHO)false也在if语句中进行评估.(我不想那样).

因此,我一直在编写以下内容来制定这样的检查:

if (value === false)
   //Do Something
Run Code Online (Sandbox Code Playgroud)

然而,这个结构对我来说有点奇怪.
这里有更优雅的方式(导致与=== false当然相同的结果)?

isFalse当然,引入一种方法是一种选择,但这并不是我所期待的,因为它看起来更令人分心=== false.

javascript comparison boolean coding-style

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

PHP/JS:删除分隔列表中的最终逗号

在典型的for循环中生成逗号分隔列表时,消除最终逗号的最佳,最简洁的编码实践是什么?这种情况一直存在,我无法忍受为这么简单的事情编写如此多的额外代码行......必须有更好的技术/模式.

foreach ($list as $item)
{
    echo "'".$item . "',";
}
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法(使用PHP和/或JS)使上面的代码产生一个逗号,但最后一次迭代?

现在我正在做这样的事情:

$total = count($images);
$i=0;
foreach ($list as $item)
{
    $i++;
    echo "'".$item."'";
    if ($i<$total) echo ',';
}
Run Code Online (Sandbox Code Playgroud)

但是这为简单的事情添加了四条代码......

javascript php coding-style

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

Asp.net设计模式

我是一名初级开发人员,他已经掌握了基础知识并且也有一些经验,但是当谈到从头开始构建项目时,我在编写良好的可维护代码方面毫无用处.我知道有很多设计模式用于此目的,而且我也知道asp.net MVC3.现在,我是否需要阅读asp.net设计模式书籍才能成为asp.net的优秀架构师,还是应该专注于MVC,因为它是新的更好的设计模式?我有这样的印象,设计模式和MVC是分开的,因为MVC是它自己的"强制"设计模式.我需要为自己澄清这一点并欣赏所有答案!谢谢.

model-view-controller asp.net-mvc design-patterns coding-style asp.net-mvc-3

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

for(...)循环索引声明样式

代码之间是否存在任何差异:

int i = 0;
for ( i = 0 ; i < n ; i++ )
{
}
Run Code Online (Sandbox Code Playgroud)

for ( int i = 0 ; i < n ; i++ )
{
}
Run Code Online (Sandbox Code Playgroud)

也许如果有更多循环并且它们都使用相同的索引?

此外,第一个版本相当于:

int i = 0;
for ( ; i < n ; i++ )
{
}
Run Code Online (Sandbox Code Playgroud)

我知道优化器应该足够智能,至少可以生成相同的代码,但理论上是否存在任何差异?

c++ syntax for-loop coding-style

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

c语法在两个不同的行中?

我有关于c语法的这个简单问题.当我们写:

  printf("hello world
  ");
Run Code Online (Sandbox Code Playgroud)

编译器产生错误.为什么?在另一个案例中:

  for (i = 0; i < MAXLINE - 1      
  && (c=getchar)) != EOF && c != '\n'; ++i)
Run Code Online (Sandbox Code Playgroud)

一切都很好.这一切的一般规则是什么?

谢谢 !

c coding-style

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

C++常量返回类型的后缀增量运算符

在C++中,无论我在web中看到后缀增量运算符声明的示例,它总是被声明为

T& operator++(int);
Run Code Online (Sandbox Code Playgroud)

而且我相信这是后缀增量的正确语法,不是吗?

问题在于,每当我声明后缀增量时,我都会使用const关键字声明返回类型,以便它变为类似lvalue.

请参阅示例代码:

class AClass
{
    int foo;

public:
    AClass(void) : foo(0) {};

    // Suffix increment operator
    // Consider adding const to return type
    /* const */ AClass operator++(int)
    {
        AClass cp(*this);
        foo++;
        return cp;
    };

    // Prefix increment operator
    AClass& operator++()
    {
        foo++;
        return *this;
    };
};

int main(int argc, const char* args[])
{
    /* This code would fail to compile.
    int bar = 5;
    (bar++)++;
     */

    // Similarily, I would expect this to …
Run Code Online (Sandbox Code Playgroud)

c++ coding-style increment operator-keyword

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

PHP - 更清洁,更优雅的方式来验证表单的内容

我目前正在处理上传页面,用户在表单中输入值,然后单击"提交".我将检查表单是否已提交,如果提交表明它们不是空的.这是我目前的代码

function validPost()
{
    if(isset($_POST["title"]) && //if a post has been submitted
       isset($_POST["artist"]) &&
       isset($_POST["genre"]) &&
       isset($_POST["url"]) &&
       isset($_POST["user"]) ) 
    { 
        if (strlen($_POST['title']) <= 0) {
            echo 'ERROR: Please enter a title. </ br>';
            return false;
        }
        else if (strlen($_POST['artist']) <= 0) {
            echo 'ERROR: Please enter an artist. </ br>';
            return false;
        }
        else if (strlen($_POST['genre']) <= 0) {
            echo 'ERROR: Please select a genre. </ br>';
            return false;
        }
        else if (strlen($_POST['url']) <= 0) {
            echo 'ERROR: Please …
Run Code Online (Sandbox Code Playgroud)

php forms coding-style submit

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

确保对象不为null

如何确保某个类的某个实例永远不会为null?有人告诉我使用Debug.Assert(),但这样做,我只会确保代码在调试模式下工作,而我想确保在发布中的is-never-null条件.

例如,在过去我编写的代码如下:

public string MyString
{
get
{
    if(instance1.property1.Equals("bla"))
    {
        return bla; 
    }
}
}
Run Code Online (Sandbox Code Playgroud)

但是如果instance1为null,则抛出异常.我想避免犯这样的错误并在将来产生这样的例外.

谢谢,


请参阅下面的具体示例,说明问题:

我有一种方法,可以根据服务器的响应对用户进行身份验证.方法是这样的:

        /// <summary>
    /// attempts authentication for current user
    /// </summary>
    /// <returns></returns>
    public AuthResult CheckUser()
    {
        WebRequest request = WebRequest.Create(GetServerURI);
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";

        string postdata = "data=" + HttpUtility.UrlEncode(SerializeAuth());
        byte[] arr = Utils.AppDefaultEncoding.GetBytes(postdata);
        request.ContentLength = arr.Length;
        request.Timeout = Convert.ToInt32(TimeUtils.GetMiliseconds(10, TimeUtils.TimeSelect.Seconds));

        Stream strToWrite = request.GetRequestStream();
        strToWrite.Write(arr, 0, arr.Length);

        WebResponse response = request.GetResponse();
        using (Stream dataFromResponse = response.GetResponseStream())
        {
            using …
Run Code Online (Sandbox Code Playgroud)

c# coding-style exception-safety

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