任何人都可以建议我使用twitter api开发应用程序的最佳C#twitter api.我想在我的应用程序中使用twitter的所有高级功能.
是否有关于在重载方法上返回不同返回类型的最佳实践?例如,如果我在DAL中有一个Load方法,我要么加载一个项目或一堆项目.我知道我可以使用多种方法:
加载一个对象
MyBusinessObject LoadOne(int id)
{
}
Run Code Online (Sandbox Code Playgroud)
加载多个对象
MyBusinessObject[] LoadMany(params int[] ids)
{
}
Run Code Online (Sandbox Code Playgroud)
现在,我知道我可以做的是重载一个方法并具有不同的返回类型.像这样:
MyBusinessObject Load(int id)
{
}
Run Code Online (Sandbox Code Playgroud)
和
MyBusinessObject[] Load(params int[] ids)
{
}
Run Code Online (Sandbox Code Playgroud)
虽然似乎没有什么可以阻止我这样做,并且从API的角度来看它保持整洁,这看起来是个好主意吗?我昨晚遇到它,部分我认为我不应该这样做是因为想要匹配重载方法的返回类型.
我也可以让Load(int id)方法返回一个只包含一个项目的集合.在我看来,这违反了最少惊喜的原则,但是如果你期望返回一个项目,你应该返回该项目,你不应该返回包含单个项目的列表.
所以这是围绕这些想法的矛盾思想:
所以后两种想法比第一种想法更重要,但与此同时,第一种想法似乎是一种程序化的最佳实践.
有没有围绕这种做法的最佳做法?我有兴趣听听别人对这个问题的看法.
我正在为ASP.Net MVC网站创建自定义成员资格提供程序.作为更大的库的一部分,提供程序被创建为单独的类.后端数据存储需要灵活,因为它可以是Xml文件或SQL数据库.我最初的想法是为数据存储创建一个接口,并使用依赖注入将其注入提供程序.
最终结果是开发人员可以继承数据存储接口并提供更新数据所需的方法,然后由自定义成员资格提供程序使用.
但是,由于我自己缺乏技能,我无法弄清楚如何将该类添加到网站时将其注入会员提供商?将数据存储链接到提供程序需要做些什么?在网站上启用此功能的最简单方法是什么?
asp.net-mvc dependency-injection data-storage membership-provider
Python的语言环境实现似乎想要从系统设置中读取语言环境,或者通过setlocale调用来设置它.这些都不适合我,因为我想在Web应用程序中使用这些功能,其中所需的语言环境是用户的语言环境.
并且语言环境文档中有警告会使整个事情变得可怕:
最重要的是,一些实现被打破,频繁的区域设置更改可能导致核心转储.这使得语言环境在正确使用时有些痛苦
和
在某些库例程中调用setlocale()通常是个坏主意,因为它会影响整个程序的副作用
那么,是否有一个合理的区域设置替代用于Web应用程序?是巴贝尔它还是有其他的选择吗?我正在寻找能够处理货币以及日期和数字的东西.
[更新]为了澄清,我对各种语言环境的日期,数字和货币格式最感兴趣.
每次我尝试使用我的添加功能并从中返回一个列表.我得到一个未定义的符号错误.我在这做错了什么.
这是错误:文件中未定义的第一个引用符号
add(std::list<int, std::allocator<int> > const&, std::list<int, std::allocator<int> >)/var/tmp//cc78hUrW.o
Run Code Online (Sandbox Code Playgroud)
ld:致命:符号引用错误.没有输出写入a.out collect2:ld返回1退出状态
#include <iostream>
#include <list>
#include <math.h>
using namespace std;
list<int> add(const list<int> &lhs, const list<int> $rhs);
list<int> sub(const list<int> &lhs, const list<int> $rhs);
list<int> mul(const list<int> &lhs, const list<int> &rhs);
int main(int argc, char* argv[])
{
/*variables*/
list<int> num1, num2, num3;
list<int> ::iterator it1, it2, it3;
char temp[1001];
int x = 0, y = 0;
it1 = num1.begin();
for(x = 0; x <= 1001; x++)
temp[x] = -42;
cout …Run Code Online (Sandbox Code Playgroud) 我想在xpath表达式中使用xslt参数的值.具体来说,作为表达式中not()调用的一部分<xsl:if.
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- my_param contains a string '/foo/bar', passed in from ant -->
<!-- the 'no' is just a default value -->
<xsl:param name="my_param">no</xsl:param>
<xsl:variable name="var_myparam" select="$my_param" />
<!-- ... -->
<!-- this works -->
<xsl:if test="not(/foo/bar)" /> <!-- expression returns boolean true -->
<!-- ... -->
</xsl:if>
<!-- I can't figure out how to do this the right way -->
<!-- None of these appear to work -->
<xsl:if test="not($var_myparam)" /> <!-- expression …Run Code Online (Sandbox Code Playgroud) 我有一堆使用我编写的Java图表工具创建的图表 - 它们主要是黑白图表,水印块,偶尔还有其他颜色.它们目前被保存为JPG文件,我想将它们插入到我正在准备Print On Demand的书中.
本书是一个OpenOffice ODT文件,稍后将转换为PDF.
目前我使用的是JPG文件,但是他们使用的打印工具需要300 DPI,所以我修改了我的图表工具,使用getAsTree()将xDensity和yDensity设置为300,将resUnits设置为1,然后将图表扩展为3(300/96).IMO结果看起来不错!
不幸的是,另一个论坛上有人指出线图在JPG文件上"模糊",所以建议我切换到PNG,或者可能是BMP文件,这两个ODT文件都允许插入.
我的问题是BMP似乎没有DPI,而PNGMetadata似乎不支持getAsTree().有人能指出我正确的方向吗?谢谢.
我正在努力清理一个充满功能模板的API,并且强烈希望编写以下代码.
template <typename T, typename U, typename V>
void doWork(const T& arg1, const U& arg2, V* optionalArg = 0);
Run Code Online (Sandbox Code Playgroud)
当我调用此模板时,我想按照以下方式执行此操作.
std::string text("hello");
doWork(100, 20.0, &text);
doWork('a', text); // oops!
doWork<char, std::string, void>('a', text); // to verbose!
Run Code Online (Sandbox Code Playgroud)
不幸的是,第二次调用没有编译,因为编译器无法推断出可选参数的类型.这很不幸,因为我真的不在乎参数类型是什么,而是它的值是NULL.此外,我想避免第三次调用的路由,因为它妨碍了可读性.
这导致我尝试使模板参数V具有默认类型,这也不起作用,因为您不能将默认类型应用于函数模板参数(至少使用VC++ 9.0).
template <typename T, typename U, typename V = void> // oops!
void doWork(const T& arg1, const U& arg2, V* optionalArg = 0);
Run Code Online (Sandbox Code Playgroud)
我唯一剩下的选择是引入一个doWork对模板参数一无所知的重载V.
template <typename T, typename U>
void doWork(const T& arg1, const U& arg2) …Run Code Online (Sandbox Code Playgroud) c++ templates optional-parameters optional-arguments function-templates
任务很简单:在服务器端 (python) 接受包含上传文件和更多表单参数的 HTTP POST。
我正在尝试实现上传进度指示器,因此我需要能够逐块读取文件内容。
我发现的所有方法都基于 cgi.FieldStorage,它以某种方式只允许我获取整个文件(在内存中,这本身就是一场灾难)。有些人建议重新定义 FieldStorage.make_file 方法(),这似乎破坏了 cgi 实现(奇怪...)。
我目前能够逐块读取整个 wsgi 输入到文件系统,从而产生以下数据:
-----------------------------9514143097616
Content-Disposition: form-data; name="myfile"; filename="inbound_marketing_cartoon_ebook.pdf"
Content-Type: application/pdf
... 1.5 MB of PDF data
-----------------------------9514143097616
Content-Disposition: form-data; name="tid"
194
-----------------------------9514143097616--
Run Code Online (Sandbox Code Playgroud)
有谁知道是否有任何 Python 库可以可靠地解析这个东西?还是我应该手动执行此操作?(即 Python 2.5)
谢谢。