小编Yan*_*hon的帖子

泛型上的InvalidCastException

来自Java世界,使用泛型和C#进行编程通常是一个令人头疼的问题.像这个:

interface ISomeObject { }
class SomeObjectA : ISomeObject { }
class SomeObjectB : ISomeObject { }


interface ISomething<T> where T : ISomeObject
{
    T GetObject();
}
class SomethingA : ISomething<SomeObjectA>
{
    public SomeObjectA GetObject() { return new SomeObjectA(); }
}
class SomethingB : ISomething<SomeObjectB>
{
    public SomeObjectB GetObject() { return new SomeObjectB(); }
}


class SomeContainer
{

    private ISomething<ISomeObject> Something;

    public void SetSomething<T>(ISomething<T> s) where T : ISomeObject
    {
        Something = (ISomething<ISomeObject>)s;
    }
}


class TestContainerSomething
{
    static public …
Run Code Online (Sandbox Code Playgroud)

.net c# generics

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

C:printf里面的sprintf作为第一个参数

在大学学习C语言.这不是一个家庭作业,但我试图做一些事情(一些"创造性"的任务部分)并陷入困境.

我知道这是可能的

printf("%d\n", printf("23.4")); // -> 23.44 (i.e. 23.4 + 4 bytes written)
Run Code Online (Sandbox Code Playgroud)

但我怎么能sprintf()用作第一个参数printf()呢?

就像是 :

char * getFormatString(int n) {
   char * buffer;

   sprintf(buffer, "Value with %%d decimals is %%.%df", n);

   return buffer; 
}

void foo() {
   int decimals = 2;
   float pi = 3.141592;

   printf(getFormatString(decimals), decimals, pi);  // should output "Value with 2 decimals is 3.14"
}
Run Code Online (Sandbox Code Playgroud)

这甚至可能吗?到目前为止,我在执行时遇到了一个seg错误.

c printf

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

Makefile编译多次相同的源

**问题编辑**

这是一个典型的Makefile模板:

TARGET   = my_prog               # project name

CC       = gcc -o
CFLAGS   = -Wall
SOURCES  := $(wildcard *.c)
INCLUDES := $(wildcard *.h)
OBJECTS  := $(SOURCES:.c=*.o)
rm       = rm -f

$(TARGET): $(OBJECTS)
    @$(CC) $(TARGET) $(CFLAGS) $(SOURCES)
    @echo "Compilation complete!"

clean:
    @$(rm) $(TARGET) $(OBJECTS)
    @echo "Cleanup complete!"
Run Code Online (Sandbox Code Playgroud)

问题:为什么线路11(@S(CC) $(TARGET) ...)在呼叫时仍然回响make

答:因为问题在默认规则中,第11行很好.

**更新**

我现在有这个 Makefile

# project name
TARGET   = my_prog

CC       = gcc -c
CFLAGS   = -Wall -I.
LINKER …
Run Code Online (Sandbox Code Playgroud)

makefile

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

zend form - 两行中的元素标签

我是Zend Framework的新手,在注册表格中,我需要两行标签文字.例如: - 如果是名字,我需要显示如下:

First
Name:
Run Code Online (Sandbox Code Playgroud)

我该如何实现呢?请有人帮帮我!!!

zend-framework zend-form

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

相同泛型类型的泛型数组的泛型类

我有一个方法签名就像

public <T extends SomeClass> T[] findAll(Class<T> oClass, String condition)
Run Code Online (Sandbox Code Playgroud)

但我不确定如何从中创建该T[]类型Class<T>.我已经尝试过使用Collection<T>但是我无法强制转换(T[]) collection.toArray()Array.newInstance(Class<?>, int)要求一个数组类(即T[]),这是没有用的,也是多余的.

另外,显而易见的是,new T[n]它不起作用.

我认为这很容易,但我现在麻木了解决方案:)

谢谢.

java arrays generics

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

PHP readfile()为下载的文件添加额外的字节

我正在尝试解决从php脚本下载"zip"文件时遇到的问题.似乎当我使用以下代码下载文件时,下载的文件在文件的开头附加了额外的0A09,导致winzip抛出损坏错误.

<?php
$pagePermissions = 7;
require_once ('util/check.php');
require_once ('util/file_manager.php');

$file_manager = new FileManager();

if ($_SERVER['REQUEST_METHOD'] == "GET") {
if (isset($_GET['q']) && $_GET['q'] == 'logout') {
    //require_once ('util/users.php');
    //$userdata = new Userdata();
    $userdata -> kill_session();
    header("Location: download.php");
    exit ;
}

if (isset($_GET['q']) && $_GET['q'] == 'fetch') {
    if (isset($_GET['name'])) {
        @apache_setenv('no-gzip', 1); 
        header("Content-length: " . filesize('upload/' . $_GET['name'])); 
        header('Content-type: application/zip');
        //header("Content-Disposition: attachment; filename=\"{$_GET['name']}\" ");
        header("Content-Disposition: attachment; filename={$_GET['name']}");
        header('Content-Transfer-Encoding: binary');

        readfile('upload/' . $_GET['name']);
        exit();
    }
}

}
?>
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,文件通过直接链接下载正常,文件的开头附加的2个字节只发生在这个代码.提前致谢

php

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

Zend Framework 2:设置错误 404 的原因短语

我希望我的控制器在找不到模型时返回 404 响应,并且我想指定自定义消息,而不是默认的“ The requested controller was unable to dispatch the request.

我尝试在reason中指定ViewModelreasonPhrase从响应对象设置 ......似乎没有任何效果。我目前正在研究如何防止默认行为,但如果有人在我之前知道,那就太好了。(也许还有比我无论如何都能找到的更好的方法。)

这是我所拥有的,但不起作用:

 $userModel = $this->getUserModel();
 if (empty($userModel)) {
     $this->response->setStatusCode(404);
     $this->response->setReasonPhrase('error-user-not-found');
     return new ViewModel(array(
         'content' => 'User not found',
     ));
 }
Run Code Online (Sandbox Code Playgroud)

谢谢。

php http-headers http-status-code-404 zend-framework2

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

如何使用react-i18next触发强制更新?

我正在异步加载一些资源包,并且我想在加载时刷新整个应用程序。我怎样才能做到这一点?

i18n.addResourceBundle(locale, ns, messages, true, true);

// app is not updated
Run Code Online (Sandbox Code Playgroud)

更新:我可以使用该bindToStore: 'add'选项,但由于可以加载多个包,因此我想在所有内容加载完成之前阻止刷新。

所以,目前看来,打电话i18n.changeLanguage(lang);bindToStore似乎是唯一的选择,

i18next reactjs react-i18next

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

函数中的 JavaScript 可选解构参数

我有这个函数签名

const foo = (arg, { opt1, opt2, opt3 }) => {
   ...
};
Run Code Online (Sandbox Code Playgroud)

但我希望第二个参数是可选的,例如调用函数

foo("Hello");
Run Code Online (Sandbox Code Playgroud)

但是,我得到

类型错误:无法解构opt1“未定义”或“空”的属性。

所以,我很想通过更改函数来解决这个问题,例如:

const foo = (arg, options = {}) => {
   const { opt1, opt2, opt3 } = options;

   ...
};
Run Code Online (Sandbox Code Playgroud)

但是想知道是否有更内联的替代方案?

javascript destructuring

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

为什么 React 的forwardRef 不能与 Material UI 的 styled 很好地配合?

使用forwardRefwith时styled,我看到这个奇怪的错误:“React Hook ...无法在回调内调用。React Hooks 必须在 React 函数组件或自定义 React Hook 函数中调用。”

\n

例如:

\n
import { styled } from '@mui/material/styles';\nimport { useTranslation }\xc2\xa0from '../lib/i18n';\n\nconst FooComponent = styled(({ className }) => {\n  const { t } = useTranslation();\n  return <div className={ className }>{ t('This is fine') }</div>;\n})(() => ({\n  // CSS styles...\n});\n
Run Code Online (Sandbox Code Playgroud)\n
import { forwardRef } from 'react';\nimport { useTranslation }\xc2\xa0from '../lib/i18n';\n\nconst FooComponent = forwardRef(((), ref) => {\n  const { t } = useTranslation();\n  return <div ref={ref}>{ …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs material-ui

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