小编Dav*_*vid的帖子

Java - 获取当前的类名?

我想要做的就是获取当前的类名,而java 在我的类名末尾添加了一个无用的无意义$ 1.我怎样才能摆脱它并只返回实际的类名?

String className = this.getClass().getName();
Run Code Online (Sandbox Code Playgroud)

java class classname

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

Getter和Setter?

我不是一个PHP开发人员,所以我不知道如果PHP是比较流行的使用显式的getter/setter方法,在纯OOP的风格,与私人领域(我喜欢的方式):

class MyClass {
    private $firstField;
    private $secondField;

    public function getFirstField() {
        return $this->firstField;
    }
    public function setFirstField($x) {
        $this->firstField = $x;
    }
    public function getSecondField() {
        return $this->secondField;
    }
    public function setSecondField($x) {
        $this->secondField = $x;
    }
}
Run Code Online (Sandbox Code Playgroud)

或只是公共领域:

class MyClass {
    public $firstField;
    public $secondField;
}
Run Code Online (Sandbox Code Playgroud)

谢谢

php oop coding-style

197
推荐指数
9
解决办法
21万
查看次数

使用一次更新设置多列

如何在mysql中使用更新查询设置表的多个列?

mysql

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

检查字符串是否序列化?

确定字符串是否是serialize()函数的结果/输出的最佳方法是什么?

php serialization

129
推荐指数
6
解决办法
9万
查看次数

可以有私人扩展方法吗?

假设我需要一个简单的私有帮助器方法,并且直观地在代码中它作为扩展方法是有意义的.有没有办法将该帮助程序封装到实际需要使用它的唯一类中?

例如,我试试这个:

class Program
{
    static void Main(string[] args)
    {
        var value = 0;
        value = value.GetNext(); // Compiler error
    }

    static int GetNext(this int i)
    {
        return i + 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器不"看到" GetNext()扩展方法.错误是:

必须在非泛型静态类中定义扩展方法

很公平,所以我将它包装在自己的类中,但仍然封装在它所属的对象中:

class Program
{
    static void Main(string[] args)
    {
        var value = 0;
        value = value.GetNext(); // Compiler error
    }

    static class Extensions
    {
        static int GetNext(this int i)
        {
            return i + 1;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

仍然没有骰子.现在错误说明:

必须在顶级静态类中定义扩展方法; 扩展是一个嵌套类.

这个要求有令人信服的理由吗?在某些情况下,辅助方法确实应该是私有封装的,并且如果辅助方法是扩展方法,则存在代码更清晰且更易读/可支持的情况.对于这两者相交的情况,既可以满足,也可以选择其中一种?

c# extension-methods encapsulation

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

模板模板参数

似乎理解模板模板param会杀了我:(,lemme解释我在脑海里制造的误解让我困惑:

template<class T>
class B {}; // A templated class
Run Code Online (Sandbox Code Playgroud)

这是另一个代码:

template<template<class X> class Z = B> // problem is in this line for me
class BB{}; 
Run Code Online (Sandbox Code Playgroud)

注意模板化类BB参数列表中的行,即:

template<class X> class Z = B
Run Code Online (Sandbox Code Playgroud)

现在我要问的是什么阻止c ++认为Z不是另一个模板化的Z类,即:

template<class X> class Z{
}
Run Code Online (Sandbox Code Playgroud)

而不是认为Z类是模板参数本身.

非常感谢,我真的很感激任何帮助从我的脑海中消除这种误解)

c++ templates

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

如何模拟任务<>结果?

我正在设置一些单元测试并使用Rhino Mocks填充正在测试的对象.被模拟的事情之一是Task<HttpResponseMessage>,因为被测试的逻辑包括HttpClient对获取异步响应的调用.

所以我开始设置这样的模拟:

var httpClient = MockRepository.GenerateMock<HttpClient>();
var taskFunc = MockRepository.GenerateMock<Func<HttpResponseMessage>>();
var responseTask = MockRepository.GenerateMock<Task<HttpResponseMessage>>(taskFunc);
var response = MockRepository.GenerateMock<HttpResponseMessage>();

httpClient.Stub(c => c.PostAsJsonAsync<IEnumerable<LogMessage>>(Arg<string>.Is.Anything, Arg<IEnumerable<LogMessage>>.Is.Anything)).Return(responseTask);
responseTask.Stub(t => t.Result).Return(response);
response.Stub(r => r.IsSuccessStatusCode).Return(true);
Run Code Online (Sandbox Code Playgroud)

(测试的"行为"步骤是实例化被测对象,将其提供给它httpClient,并在其上运行一个方法."断言"将通过模拟验证对它们进行了预期的方法调用.)

在调试器中单步执行此操作,此行上有一个无限期挂起:

responseTask.Stub(t => t.Result).Return(response);
Run Code Online (Sandbox Code Playgroud)

我没有很多使用Rhino Mocks或C#异步的经验,所以我可能会忽略一些明显的东西.当然,目标是对.Result财产的任何调用都将返回response模拟.但看起来我的尝试本身也许正在调用.Result我期望无限期等待,因为它只是一个模拟,也许?

安排这个的正确方法是什么?基本上我需要为我的对象提供一个模拟HttpClient并声明一个方法是用一个特定的参数调用它的.

c# rhino-mocks task-parallel-library

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

为什么所有TryParse重载都有out参数?

我发现很多次我不需要TryParse方法的out参数,但问题是必然的.在这里,我将展示一个不需要的例子.

我想检查字符串是否为整数,如果是整数则打印"整数"; 否则,打印"不是整数".所以这是代码:

string value = Console.ReadLine(); //Get a value from the user.
int num; //Why should I have it?? No need at all !

if (int.TryParse(value, out num))
{
    Console.WriteLine("An integer");
}
else
{
    Console.WriteLine("Not an integer");
}
Run Code Online (Sandbox Code Playgroud)

我只是想知道为什么TryParse总是返回一个out参数?为什么没有out参数就没有过载?

c# tryparse

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

使用输出缓冲被认为是一种不好的做法?

一般来说,php程序员是ob_start/ ob_get_clean()被认为是不好的做法吗?

输出缓冲有什么缺点吗?

php output-buffering

30
推荐指数
4
解决办法
6727
查看次数

在同一行上对齐html输入

有人可以提供一个简单的解决方案,如何在同一行上对齐表单输入,例如,当我构建一个表单时,我可以让它们在彼此的顶部对齐,它看起来很合理,但如果我放两个输入像textarea/text旁边的另一个文本或按钮,我得到垂直对齐差异.有没有办法解决这个问题,而不是摆弄边距和填充?

例如:

<style type='text/css'>
  form{
    display:inline;
  }
  textarea{
    font-size:25px;
    height:25px;
    width:200px;
  }
  input.button{
    height:25px;
    width:50px;
  }
</style>
<form>
  <textarea >Value</textarea><input type='button' class='button' value='Go'>
</form>
Run Code Online (Sandbox Code Playgroud)

html css input alignment

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