/ / Y compris la bibliothèque lors de l’accès au compilateur via l’interface de la console - c #, windows, visual-studio, console

Y compris la bibliothèque en accédant au compilateur via l’interface de la console - c #, windows, visual-studio, console

Inspiré par ce exemple j'ai décidé d'élargir la classe Factorial.

using System;
using System.Numerics;

namespace Functions
{
public class Factorial
{
public static BigInteger CalcRecursively(int number)
{
if (number > 1)
return (BigInteger)number * CalcRecursively(number - 1);
if (number <= 1)
return 1;

return 0;
}

public static BigInteger Calc(int number)
{
BigInteger rValue=1;

for (int i = 0; i < number; i++)
{
rValue = rValue * (BigInteger)(number - i);
}

return rValue;

}
}
}

J'ai utilisé System.Numerics, qui n'est pas inclus par défaut. Par conséquent, la commande
csc /target:library /out:Functions.dll Factorial.cs DigitCounter.cs les sorties:

Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1
Copyright (C) Microsoft Corporation. All rights reserved.

Factorial.cs(2,14): error CS0234: The type or namespace name "Numerics" does not
exist in the namespace "System" (are you missing an assembly reference?)
DigitCounter.cs(2,14): error CS0234: The type or namespace name "Numerics" does
not exist in the namespace "System" (are you missing an assembly
reference?)
Factorial.cs(8,23): error CS0246: The type or namespace name "BigInteger" could
not be found (are you missing a using directive or an assembly
reference?)
Factorial.cs(18,23): error CS0246: The type or namespace name "BigInteger" could
not be found (are you missing a using directive or an assembly
reference?)
DigitCounter.cs(8,42): error CS0246: The type or namespace name "BigInteger"
could not be found (are you missing a using directive or an assembly
reference?)

D'ACCORD. Je manque une référence d'assemblage. J'ai pensé "Cela doit être simple. Sur l'ensemble du système, il devrait y avoir deux fichiers System.Numerics.dll. Ce dont j'ai besoin, c'est d'ajouter à la commande / lien: [Chemin d'accès à la version x86 de System.Numerics.dll]". Les résultats de recherche ont gelé mon âme:entrer la description de l'image ici

Comme vous pouvez le voir (ou pas), il y a beaucoup plus de fichiersque je l'avais prédit! De plus, ils diffèrent par la taille et le contenu. Lequel devrais-je inclure? Pourquoi y a-t-il cinq dossiers alors que deux seulement ont le point d’être? La commande / link: est-elle correcte? Ou peut-être suis-je totalement dans l'erreur avec mes pistes de réflexion?

Réponses:

6 pour la réponse № 1

J'ai généralement constaté qu'en utilisant

/r:System.Numerics.dll

permet au compilateur de simplement trouver l’assemblage dans le GAC, ce qui est généralement ce que vous voulez. (Certes, tout allait bien l’autre jour où j’avais exactement besoin de System.Numerics pour une application console ...)