Pergunta

Você acha que C# apoiará algo como ?? = Operador?

Em vez disso:

if (list == null)
  list = new List<int>();

Pode ser possível escrever:

list ??= new List<int>();

Agora, eu poderia usar (mas parece -me que não é bem legível):

list = list ?? new List<int>();
Foi útil?

Solução

Eu sempre quis algo assim. Eu o usaria com muito mais frequência do que o ?? por si próprio.

O que eu realmente quero, no entanto, é uma forma de operador que permite desreferenciar o objeto apenas se não for nulo. Para substituir isso:

    int count = (list != null)? list.Count : 0

Com algo assim:

    int count = list??.Count : 0

O que seria especialmente útil para mim com longas cadeias de referências (design ruim, eu sei), mas por exemplo

    int count = foo??.bar??.baz??.list??.Count : 0

Isso atualmente não é possível com ?? Porque você só pode dizer "atribuir a foo, ou uma alternativa se nula", mas não "atribuir a um propriedade de foo, ou uma alternativa se nulo. "

Outras dicas

Nenhum fluxo de trabalho OOB fará isso para você.Você precisa criar um fluxo de trabalho do SharePoint Designer que fará o seguinte:

    .
  1. Leia a propriedade de departamento
  2. Adicionar se condições para verificar o valor da propriedade de departamentos
  3. dentro de cada bloco, envie o e-mail para os usuários corretos.

    Espero que isso ajude.

Um truque que encontrei em algum lugar aqui no Stackoverflow era fazer algo assim ...

private List<string> myList;
public List<string> MyProp 
{
    get { return myList ?? (myList= new List<string>()); }
}

... Você pode usar uma avaliação preguiçosa semelhante em seu código.

Eu gosto - é uma maneira agradável e sucinta de expressar uma expressão de carregamento preguiçoso. Se é ou não adicionado à linguagem é outra coisa - como Eric Lippert adora apontar, novos recursos requerem quantidades significativas de trabalho para implementar e, como tal, devem contribuir com um líquido significativo positivo para o idioma para ser incluído.

A menos que eu leia sua pergunta errada, esse operador existe em C#: http://msdn.microsoft.com/en-us/library/ms173224(vs.80).aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top